[GRASS-SVN] r46727 - in grass/trunk/raster3d: base r3.in.ascii r3.out.ascii r3.out.vtk

svn_grass at osgeo.org svn_grass at osgeo.org
Fri Jun 17 12:21:49 EDT 2011


Author: huhabla
Date: 2011-06-17 09:21:49 -0700 (Fri, 17 Jun 2011)
New Revision: 46727

Added:
   grass/trunk/raster3d/r3.out.ascii/test.r3.out.ascii.sh
   grass/trunk/raster3d/r3.out.ascii/test_double_nsbt_null.ref
   grass/trunk/raster3d/r3.out.ascii/test_double_nsbt_null_grass6_comp_1.ref
   grass/trunk/raster3d/r3.out.ascii/test_double_nsbt_null_grass6_comp_2.ref
   grass/trunk/raster3d/r3.out.ascii/test_double_nsbt_null_grass6_comp_3.ref
   grass/trunk/raster3d/r3.out.ascii/test_double_nsbt_null_no_header.ref
   grass/trunk/raster3d/r3.out.ascii/test_double_nsbt_null_prec5.ref
   grass/trunk/raster3d/r3.out.ascii/test_double_nstb_null.ref
   grass/trunk/raster3d/r3.out.ascii/test_double_snbt_null.ref
   grass/trunk/raster3d/r3.out.ascii/test_double_sntb_null.ref
   grass/trunk/raster3d/r3.out.ascii/test_double_sntb_null_prec8.ref
   grass/trunk/raster3d/r3.out.ascii/test_float_nsbt_null.ref
   grass/trunk/raster3d/r3.out.ascii/test_float_nsbt_null_grass6_comp_1.ref
   grass/trunk/raster3d/r3.out.ascii/test_float_nsbt_null_grass6_comp_2.ref
   grass/trunk/raster3d/r3.out.ascii/test_float_nsbt_null_grass6_comp_3.ref
   grass/trunk/raster3d/r3.out.ascii/test_float_nsbt_null_no_header.ref
   grass/trunk/raster3d/r3.out.ascii/test_float_nsbt_null_prec5.ref
   grass/trunk/raster3d/r3.out.ascii/test_float_nstb_null.ref
   grass/trunk/raster3d/r3.out.ascii/test_float_snbt_null.ref
   grass/trunk/raster3d/r3.out.ascii/test_float_sntb_null.ref
   grass/trunk/raster3d/r3.out.ascii/test_float_sntb_null_prec8.ref
Modified:
   grass/trunk/raster3d/base/r3.mask.main.c
   grass/trunk/raster3d/base/r3.null.main.c
   grass/trunk/raster3d/r3.in.ascii/main.c
   grass/trunk/raster3d/r3.in.ascii/r3.in.ascii.html
   grass/trunk/raster3d/r3.out.ascii/main.c
   grass/trunk/raster3d/r3.out.ascii/r3.out.ascii.html
   grass/trunk/raster3d/r3.out.vtk/test.r3.out.vtk.sh
Log:
Modified r3.in.ascii and r3.out.ascii to support different input/output data
ordering. Added several tests for r3.in.ascii and r3.out.ascii as well
as validation data. Modified r3.null and r3.mask to use the x, y, z
common cube coordinate system. Implemented in r3.in.ascii a new null value support
function to accept strings like "*" to be more "compatible" to
r.in.ascii and r3.out.ascii.


Modified: grass/trunk/raster3d/base/r3.mask.main.c
===================================================================
--- grass/trunk/raster3d/base/r3.mask.main.c	2011-06-16 23:46:32 UTC (rev 46726)
+++ grass/trunk/raster3d/base/r3.mask.main.c	2011-06-17 16:21:49 UTC (rev 46727)
@@ -88,8 +88,8 @@
 	    G3d_unlockAll(map);
 	    G3d_unlockAll(mask);
 	}
-	/*for (y = region.rows-1; y >= 0; y--) *//* go north to south */
-	for (y = 0; y < region.rows; y++)	/*I dont know which one is right; soeren 04 Aug 05 */
+    
+	for (y = 0; y < region.rows; y++)	/* We count from south to north in the cube coordinate system */
 	    for (x = 0; x < region.cols; x++) {
 		value = G3d_getDoubleRegion(map, x, y, z);
 		if (mask_d_select((DCELL *) & value, maskRules))

Modified: grass/trunk/raster3d/base/r3.null.main.c
===================================================================
--- grass/trunk/raster3d/base/r3.null.main.c	2011-06-16 23:46:32 UTC (rev 46726)
+++ grass/trunk/raster3d/base/r3.null.main.c	2011-06-17 16:21:49 UTC (rev 46727)
@@ -128,28 +128,13 @@
     G3d_autolockOn(mapOut);
     G3d_unlockAll(mapOut);
 
-     /*AV*/
-	/* BEGIN OF ORIGINAL CODE */
-	/*
-	 * for (z = 0; z < region.depths; z++) {
-	 * if ((z % tileZ) == 0) {
-	 * G3d_unlockAll (map);
-	 * G3d_unlockAll (mapOut);
-	 * }
-	 * for (y = 0; y < region.cols; y++)
-	 * for (x = 0; x < region.rows; x++) {
-	 */
-	/* END OF ORIGINAL CODE */
-	 /*AV*/
-	/* BEGIN OF MY CODE */
 	for (z = 0; z < region.depths; z++) {
 	if ((z % tileZ) == 0) {
 	    G3d_unlockAll(map);
 	    G3d_unlockAll(mapOut);
 	}
-	for (y = region.rows - 1; y >= 0; y--)
+	for (y = 0; y < region.rows; y++)
 	    for (x = 0; x < region.cols; x++) {
-		/* END OF MY CODE */
 
 		value = G3d_getDoubleRegion(map, x, y, z);
 
@@ -172,7 +157,6 @@
 	}
     }
 
-
     if (!G3d_flushAllTiles(mapOut))
 	G3d_fatalError(_("modifyNull: error flushing all tiles"));
 

Modified: grass/trunk/raster3d/r3.in.ascii/main.c
===================================================================
--- grass/trunk/raster3d/r3.in.ascii/main.c	2011-06-16 23:46:32 UTC (rev 46726)
+++ grass/trunk/raster3d/r3.in.ascii/main.c	2011-06-17 16:21:49 UTC (rev 46727)
@@ -1,20 +1,20 @@
 
 /***************************************************************************
-*
-* MODULE:       r3.in.ascii
-*
-* AUTHOR(S):    Roman Waupotitsch, Michael Shapiro, Helena Mitasova, Bill Brown, 
-* 		Lubos Mitas, Jaro Hofierka 
-*
-* PURPOSE:      Convert a 3D ASCII raster text file into a (binary) 3D raster map layer 
-*
-* COPYRIGHT:    (C) 2005 by the GRASS Development Team
-*
-*               This program is free software under the GNU General Public
-*               License (>=v2). Read the file COPYING that comes with GRASS
-*               for details.
-*
-*****************************************************************************/
+ *
+ * MODULE:       r3.in.ascii
+ *
+ * AUTHOR(S):    Roman Waupotitsch, Michael Shapiro, Helena Mitasova, Bill Brown, 
+ * 		Lubos Mitas, Jaro Hofierka, Soeren Gebbert 
+ *
+ * PURPOSE:      Convert a 3D ASCII raster text file into a (binary) 3D raster map layer 
+ *
+ * COPYRIGHT:    (C) 2005 by the GRASS Development Team
+ *
+ *               This program is free software under the GNU General Public
+ *               License (>=v2). Read the file COPYING that comes with GRASS
+ *               for details.
+ *
+ *****************************************************************************/
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -22,38 +22,48 @@
 #include <grass/G3d.h>
 #include <grass/glocale.h>
 
+#define ROW_ORDER_NORTH_TO_SOUTH 1
+#define ROW_ORDER_SOUTH_TO_NORTH 2
+#define DEPTH_ORDER_BOTTOM_TO_TOP 3
+#define DEPTH_ORDER_TOP_TO_BOTTOM 4
+
 /*- prototypes --------------------------------------------------------------*/
 
-static void fatalError(char *errorMsg);	/*Simple Error message */
+static void fatalError(char *errorMsg); /*Simple Error message */
 
-static void setParams();	/*Fill the paramType structure */
+static void setParams(); /*Fill the paramType structure */
 
 /*Puts the userdefined parameters into easier handable variables */
 static void getParams(char **input, char **output, int *convertNull,
-		      double *nullValu);
+                      char *nullValu);
 
 /*reads a g3d ascii-file headerfile-string */
 static void readHeaderString(FILE * fp, char *valueString, double *value);
 
-static FILE *openAscii(char *asciiFile, G3D_Region * region);	/*open the g3d ascii file */
+static FILE *openAscii(char *asciiFile, G3D_Region * region); /*open the g3d ascii file */
 
 /*This function does all the work, it reads the values from the g3d ascii-file and put 
    it into an g3d-map */
 static void asciiToG3d(FILE * fp, G3D_Region * region, int convertNull,
-		       double nullValue);
+                       char *nullValue);
 
 
+
 /*---------------------------------------------------------------------------*/
 
+/* global variables */
 void *map = NULL;
+int rowOrder;
+int depthOrder;
+
 extern void *G3d_openNewParam();
 
 /*---------------------------------------------------------------------------*/
-static void fatalError(char *errorMsg)
+void fatalError(char *errorMsg)
 {
     if (map != NULL) {
-	/* should unopen map here! */
-	G3d_closeCell(map);
+        /* should unopen map here! */
+        G3d_closeCell(map);
     }
 
     G3d_fatalError(errorMsg);
@@ -61,8 +71,7 @@
 
 /*---------------------------------------------------------------------------*/
 
-typedef struct
-{
+typedef struct {
     struct Option *input, *output, *nv;
 } paramType;
 
@@ -85,57 +94,101 @@
     param.nv->type = TYPE_STRING;
     param.nv->required = NO;
     param.nv->multiple = NO;
-    param.nv->answer = "none";
+    param.nv->answer = "*";
     param.nv->description =
-	_("String representing NULL value data cell (use 'none' if no such value)");
+        _("String representing NULL value data cell or 'none' if no null value present");
 }
 
 /*---------------------------------------------------------------------------*/
 
-static void
-getParams(char **input, char **output, int *convertNull, double *nullValue)
+void
+getParams(char **input, char **output, int *convertNull, char *nullValue)
 {
     *input = param.input->answer;
     *output = param.output->answer;
     *convertNull = (strcmp(param.nv->answer, "none") != 0);
     if (*convertNull)
-	if (sscanf(param.nv->answer, "%lf", nullValue) != 1)
-	    fatalError("getParams: NULL-value value invalid");
+        if (sscanf(param.nv->answer, "%s", nullValue) != 1)
+            fatalError("getParams: NULL-value value invalid");
 
     G_debug(3, "getParams: input: %s, output: %s", *input, *output);
 }
 
 /*---------------------------------------------------------------------------*/
 
-static void readHeaderString(FILE * fp, char *valueString, double *value)
+void readHeaderString(FILE * fp, char *valueString, double *value)
 {
     static char format[100];
 
-    /* to avoid buffer overflows we use snprintf */
+    /* to avoid buffer overflows we use G_snprintf */
     G_snprintf(format, 100, "%s %%lf", valueString);
     if (fscanf(fp, format, value) != 1) {
-	G_debug(0, "bad value for [%s]", valueString);
-	fatalError("readHeaderString: header value invalid");
+        G_debug(0, "bad value for [%s]", valueString);
+        fatalError("readHeaderString: header value invalid");
     }
-    while (fgetc(fp) != '\n') ;
+    while (fgetc(fp) != '\n');
 }
 
 /*---------------------------------------------------------------------------*/
 
-static FILE *openAscii(char *asciiFile, G3D_Region * region)
+FILE *openAscii(char *asciiFile, G3D_Region * region)
 {
     FILE *fp;
     double tmp;
+    char buff[1024];
 
     G_debug(3, "openAscii: opens the ascii file and reads the header");
 
     fp = fopen(asciiFile, "r");
     if (fp == NULL) {
-	perror(asciiFile);
-	G_usage();
-	exit(EXIT_FAILURE);
+        perror(asciiFile);
+        G_usage();
+        exit(EXIT_FAILURE);
     }
 
+    /* Initialize the default order */
+    rowOrder = ROW_ORDER_NORTH_TO_SOUTH;
+    depthOrder = DEPTH_ORDER_BOTTOM_TO_TOP;
+
+    /* First check for new ascii format*/
+    if (fscanf(fp, "version: %s", buff) == 1) {
+        while (fgetc(fp) != '\n');
+        G_message("Found version information: %s\n", buff);
+        if (G_strcasecmp(buff, "grass7") == 0) {
+
+            /* Parse the row and depth order */
+            if (fscanf(fp, "order:%s", buff) != 1)
+                fatalError("Unable to parse the row and depth order");
+            while (fgetc(fp) != '\n');
+
+            if (G_strcasecmp(buff, "nsbt") == 0) {
+                rowOrder = ROW_ORDER_NORTH_TO_SOUTH;
+                depthOrder = DEPTH_ORDER_BOTTOM_TO_TOP;
+                G_message("Found north -> south, bottom -> top order (nsbt)");
+            }
+            if (G_strcasecmp(buff, "snbt") == 0) {
+                rowOrder = ROW_ORDER_SOUTH_TO_NORTH;
+                depthOrder = DEPTH_ORDER_BOTTOM_TO_TOP;
+                G_message("Found south -> north, bottom -> top order (snbt)");
+            }
+            if (G_strcasecmp(buff, "nstb") == 0) {
+                rowOrder = ROW_ORDER_NORTH_TO_SOUTH;
+                depthOrder = DEPTH_ORDER_TOP_TO_BOTTOM;
+                G_message("Found north -> south, top -> bottom order (nstb)");
+            }
+            if (G_strcasecmp(buff, "sntb") == 0) {
+                rowOrder = ROW_ORDER_SOUTH_TO_NORTH;
+                depthOrder = DEPTH_ORDER_TOP_TO_BOTTOM;
+                G_message("Found south -> north, top -> bottom order (sntb)");
+            }
+        } else {
+            G_fatal_error(_("Unsupported grass version %s"), buff);
+        }
+    } else {
+        /* Rewind the stream */
+        rewind(fp);
+    }
+
     G3d_getWindow(region);
 
     readHeaderString(fp, "north:", &(region->north));
@@ -145,11 +198,11 @@
     readHeaderString(fp, "top:", &(region->top));
     readHeaderString(fp, "bottom:", &(region->bottom));
     readHeaderString(fp, "rows:", &tmp);
-    region->rows = tmp;
+    region->rows = (int) tmp;
     readHeaderString(fp, "cols:", &tmp);
-    region->cols = tmp;
+    region->cols = (int) tmp;
     readHeaderString(fp, "levels:", &tmp);
-    region->depths = tmp;
+    region->depths = (int) tmp;
 
     return fp;
 }
@@ -158,64 +211,94 @@
 
 #define MAX(a,b) (a > b ? a : b)
 
-static void
-asciiToG3d(FILE * fp, G3D_Region * region, int convertNull, double nullValue)
+void
+asciiToG3d(FILE * fp, G3D_Region * region, int convertNull, char *nullValue)
 {
     int x, y, z;
+    int col, row, depth;
     double value;
+    char buff[256];
     int tileX, tileY, tileZ;
 
-
     G3d_getTileDimensionsMap(map, &tileX, &tileY, &tileZ);
     G3d_minUnlocked(map, G3D_USE_CACHE_X);
 
     G3d_autolockOn(map);
     G3d_unlockAll(map);
     G_message(_("Loading data ...  (%dx%dx%d)"), region->cols, region->rows,
-	      region->depths);
+              region->depths);
 
     G_debug(3,
-	    "asciiToG3d: writing the 3d raster map, with rows %i cols %i depths %i",
-	    region->rows, region->cols, region->depths);
+            "asciiToG3d: writing the 3d raster map, with rows %i cols %i depths %i",
+            region->rows, region->cols, region->depths);
 
     for (z = 0; z < region->depths; z++) {
+        G_percent(z, region->depths, 1);
 
-	if ((z % tileZ) == 0)
-	    G3d_unlockAll(map);
+        if ((z % tileZ) == 0)
+            G3d_unlockAll(map);
 
-	for (y = region->rows - 1; y >= 0; y--)	/* go south to north */
-	    for (x = 0; x < region->cols; x++) {
-		if (fscanf(fp, "%lf", &value) != 1) {
-		    if (feof(fp))
-			G_warning(_("End of file reached while still loading data."));
-		    G_debug(0,
-			    "missing data at col=%d row=%d depth=%d last_value=[%.4f]",
-			    x + 1, region->rows - y, z + 1, value);
-		    fatalError("asciiToG3d: read failed");
-		}
-		if (convertNull && (value == nullValue))
-		    G3d_setNullValue(&value, 1, DCELL_TYPE);
-		G3d_putDouble(map, x, y, z, value);
-	    }
+        for (y = 0; y < region->rows; y++) /* go south to north */
+            for (x = 0; x < region->cols; x++) {
 
-	if (!G3d_flushTilesInCube(map,
-				  0, 0, MAX(0, z - tileZ),
-				  region->rows - 1, region->cols - 1, z))
-	    fatalError("asciiTog3d: error flushing tiles");
+                /* From west to east */
+                col = x;
+                /* The default is to read rows from north to south */
+                row = region->rows - y - 1;
+                /* From bottom to the top */
+                depth = z;
 
+                /* Read rows as from south to north */
+                if (rowOrder == ROW_ORDER_SOUTH_TO_NORTH)
+                    row = y;
+
+                /* Read XY layer from top to bottom */
+                if (depthOrder == DEPTH_ORDER_TOP_TO_BOTTOM)
+                    depth = region->depths - z - 1;
+
+                if (fscanf(fp, "%s", buff) != 1) {
+                    if (feof(fp))
+                        G_warning(_("End of file reached while still loading data."));
+                    G_debug(0,
+                            "missing data at col=%d row=%d depth=%d last_value=[%.4f]",
+                            x + 1, y + 1, z + 1, value);
+                    fatalError("asciiToG3d: read failed");
+                }
+
+                /* Check for null value */
+                if (convertNull && strncmp(buff, nullValue, strlen(nullValue)) == 0) {
+                    G3d_setNullValue(&value, 1, DCELL_TYPE);
+                } else {
+                    if (sscanf(buff, "%lf", &value) != 1) {
+                        G_warning(_("Invalid value detected."));
+                        G_debug(0, "invalid value at col=%d row=%d depth=%d last_value=[%s]",
+                                x + 1, y + 1, z + 1, buff);
+                        fatalError("asciiToG3d: read failed");
+                    }
+                }
+                /* Write the data */
+                G3d_putDouble(map, col, row, depth, value);
+            }
+
+        if (!G3d_flushTilesInCube(map,
+                                  0, 0, MAX(0, depth - tileZ),
+                                  region->rows - 1, region->cols - 1, depth))
+            fatalError("asciiTog3d: error flushing tiles");
     }
 
     if (fscanf(fp, "%lf", &value) == 1) {
-	G_warning(_("Data exists in input file after fully importing "
-		    "expected data.  [%.4f ...]"), value);
+        G_warning(_("Data exists in input file after fully importing "
+                    "expected data.  [%.4f ...]"), value);
     }
 
     if (!G3d_flushAllTiles(map))
-	fatalError("asciiTog3d: error flushing tiles");
+        fatalError("asciiTog3d: error flushing tiles");
 
     G3d_autolockOff(map);
     G3d_unlockAll(map);
 
+    G_percent(1, 1, 1);
+
 }
 
 /*---------------------------------------------------------------------------*/
@@ -224,10 +307,10 @@
 {
     char *input, *output;
     int convertNull;
-    double nullValue;
+    char nullValue[256];
     int useTypeDefault, type, useLzwDefault, doLzw, useRleDefault, doRle;
     int usePrecisionDefault, precision, useDimensionDefault, tileX, tileY,
-	tileZ;
+        tileZ;
     G3D_Region region;
     FILE *fp;
     struct GModule *module;
@@ -241,39 +324,41 @@
     G_add_keyword(_("voxel"));
     G_add_keyword(_("import"));
     module->description =
-	_("Converts a 3D ASCII raster text file into a (binary) 3D raster map.");
+        _("Converts a 3D ASCII raster text file into a (binary) 3D raster map.");
 
     setParams();
     G3d_setStandard3dInputParams();
 
     if (G_parser(argc, argv))
-	exit(EXIT_FAILURE);
+        exit(EXIT_FAILURE);
 
-    getParams(&input, &output, &convertNull, &nullValue);
+    getParams(&input, &output, &convertNull, nullValue);
     if (!G3d_getStandard3dParams(&useTypeDefault, &type,
-				 &useLzwDefault, &doLzw,
-				 &useRleDefault, &doRle,
-				 &usePrecisionDefault, &precision,
-				 &useDimensionDefault, &tileX, &tileY,
-				 &tileZ))
-	fatalError("main: error getting standard parameters");
+                                 &useLzwDefault, &doLzw,
+                                 &useRleDefault, &doRle,
+                                 &usePrecisionDefault, &precision,
+                                 &useDimensionDefault, &tileX, &tileY,
+                                 &tileZ))
+        fatalError("main: error getting standard parameters");
 
+    G3d_initDefaults();
+
     fp = openAscii(input, &region);
 
     /*Open the new G3D map */
-    map = G3d_openNewParam(output, DCELL_TYPE, G3D_USE_CACHE_XY,
-			   &region,
-			   type, doLzw, doRle, precision, tileX, tileY,
-			   tileZ);
+    map = G3d_openNewParam(output, G3D_TILE_SAME_AS_FILE, G3D_USE_CACHE_XY,
+                           &region,
+                           type, doLzw, doRle, precision, tileX, tileY,
+                           tileZ);
 
     if (map == NULL)
-	fatalError(_("Error opening 3d raster map"));
+        fatalError(_("Error opening 3d raster map"));
 
     /*Create the new G3D Map */
     asciiToG3d(fp, &region, convertNull, nullValue);
 
     if (!G3d_closeCell(map))
-	fatalError(_("Error closing new 3d raster map"));
+        fatalError(_("Error closing new 3d raster map"));
 
     /* write input name to map history */
     G3d_readHistory(output, G_mapset(), &history);
@@ -282,9 +367,7 @@
 
     map = NULL;
     if (fclose(fp))
-	fatalError(_("Error closing ascii file"));
+        fatalError(_("Error closing ascii file"));
 
-    G_done_msg("");
-
     return EXIT_SUCCESS;
 }

Modified: grass/trunk/raster3d/r3.in.ascii/r3.in.ascii.html
===================================================================
--- grass/trunk/raster3d/r3.in.ascii/r3.in.ascii.html	2011-06-16 23:46:32 UTC (rev 46726)
+++ grass/trunk/raster3d/r3.in.ascii/r3.in.ascii.html	2011-06-17 16:21:49 UTC (rev 46727)
@@ -23,7 +23,7 @@
 
 <DT><B>nv</B>
 <DD>Specifies which value to convert to NULL-value.  If the specified value is 
-<em>none</em>, no conversion is performed.  Default is <em>none</em>.
+<em>none</em>, no conversion is performed.  Default is <em>*</em>.
 
 <DT><B>input</B>
 <DD>Path and name of ASCII file to be imported
@@ -33,37 +33,43 @@
 </DL>
 
 <H2>NOTES</H2>
-The format for the ASCII file:
-<PRE>
+The format for the ascii file is:
+<pre>
 version: <i>"grass7"</i>
 order:   <i>"nsbt" or "nstb" or "snbt" or "sntb"</i>
-north: <EM>floating point</EM>
-south: <EM>floating point</EM>
-east: <EM>floating point</EM>
-west: <EM>floating point</EM>
-top: <EM>floating point</EM>
-bottom: <EM>floating point</EM>
-rows: <EM>integer</EM>
-cols: <EM>integer</EM>
-levels: <EM>integer</EM>
-</PRE>
+north:   <i>floating point</i>
+south:   <i>floating point</i>
+east:    <i>floating point</i>
+west:    <i>floating point</i>
+top:     <i>floating point</i>
+bottom:  <i>floating point</i>
+rows:    <i>integer</i>
+cols:    <i>integer</i>
+levels:  <i>integer</i>
+</pre>
+
+The version and order option are introduced in grass7 June 2011. The version option 
+is self explaining. The order option specifies the row and depth order of the data in the input file.
+The supported row/depth ordering is documented in the <A HREF="r3.out.ascii.html">r3.out.ascii</A> 
+manpage. The order of the data in the input file does not specifiy the data order in the 
+generated output raster3d map which is in any case <em>south -> north, bottom -> top</em> ordering. 
+So dependent on the order information the data is automatically imported into the correct internal ordering.
+<P>
+The version and order options are not mandatory. In case no version and order option is specified, 
+the default grass6 ascii format is assumed.
+<P>
 This header is followed by the cell values in <EM>floating point</EM> format 
 organized in rows with constant <EM>col</EM> and <EM>level</EM> coordinate.
 The rows are organized by constant <EM>level</EM> coordinate. Individual cell
 values are separated by <EM>space</EM> or <EM>CR</EM>.
 <P>
-NOTE: Currently, after the file has been imported, the stored values are 
-compared with the original data. This feature is used to find bugs in the
-library at an early stage and will be turned off as soon as confidence has
-built up.
 
 <H2>EXAMPLES</H2>
 
-4x3x2 sample. Note lower-left (SW) corner of the bottom level comes first!
-This array format, where EW is preserved but NS is flipped, is sometimes
-known as "ij" coordinates.
-This is opposite to <em>r.in.ascii</em>'s format, which places the SW corner
-at the beginning of the last row of data.
+4x3x2 sample. Note in case no specific ordering is specified in the input file the
+upper-left (NW) corner of the bottom level comes first. The according order option is: nsbt for
+north -> south, bottom -> top ordering. This is compatible with <em>r.in.ascii</em>
+for single level data.
 
 <div class="code"><pre>
 north: 3.0
@@ -75,38 +81,20 @@
 rows: 3
 cols: 4
 levels: 2
-x1,y1,z1  x2,y1,z1  x3,y1,z1  x4,y1,z1
-x1,y2,z1  x2,y2,z1  x3,y2,z1  x4,y2,z1
 x1,y3,z1  x2,y3,z1  x3,y3,z1  x4,y3,z1
-x1,y1,z2  x2,y1,z2  x3,y1,z2  x4,y1,z2
-x1,y2,z2  x2,y2,z2  x3,y2,z2  x4,y2,z2
+x1,y2,z1  x2,y2,z1  x3,y2,z1  x4,y2,z1
+x1,y1,z1  x2,y1,z1  x3,y1,z1  x4,y1,z1
 x1,y3,z2  x2,y3,z2  x3,y3,z2  x4,y3,z2
+x1,y2,z2  x2,y2,z2  x3,y2,z2  x4,y2,z2
+x1,y1,z2  x2,y1,z2  x3,y1,z2  x4,y1,z2
 </pre></div>
 
-<P>
+Note that unit tests for r3.in.ascii are implemented in the <em>test.r3.out.ascii.sh</em> script located in 
+the r3.out.ascii directory.
 
-Sample ASCII voxel map with one layer and several rows and columns (Spearfish area):
-
-<div class="code"><pre>
-north: 4925010.000000
-south: 4924890.000000
-east: 596760.000000
-west: 596610.000000
-top: 1.000000
-bottom: 0.000000
-rows: 4
-cols: 5
-levels: 1
-1204.74 1204.48 1204.19 1203.81 1203.39
-1203.89 1203.67 1203.34 1202.98 1202.43
-1203.05 1202.80 1202.51 1202.11 1201.48
-1202.10 1201.92 1201.62 1201.27 1200.68
-</pre></div>
-
-
 <H2>AUTHORS</H2>
 Roman Waupotitsch, Michael Shapiro, 
-Helena Mitasova, Bill Brown, Lubos Mitas, Jaro Hofierka
+Helena Mitasova, Bill Brown, Lubos Mitas, Jaro Hofierka, Soeren Gebbert
 
 <H2>SEE ALSO</H2>
 <EM>

Modified: grass/trunk/raster3d/r3.out.ascii/main.c
===================================================================
--- grass/trunk/raster3d/r3.out.ascii/main.c	2011-06-16 23:46:32 UTC (rev 46726)
+++ grass/trunk/raster3d/r3.out.ascii/main.c	2011-06-17 16:21:49 UTC (rev 46727)
@@ -4,7 +4,7 @@
  * MODULE:       r3.out.ascii 
  *   	    	
  * AUTHOR(S):    Original author 
- *		Mark Astley, Bill Brown
+ *		Mark Astley, Bill Brown, Soeren Gebbert
  * 		USA CERL started 4/4/96
  *
  * PURPOSE:      Converts a 3D raster map layer into an ASCII text file  
@@ -144,7 +144,7 @@
 {
     static char format[100];
 
-    sprintf(format, "%s %%lf\n", valueString);
+    G_snprintf(format, 100, "%s %%lf\n", valueString);
     if (fprintf(fp, format, value) < 0)
         fatalError("writeHeaderString: header value invalid");
 }
@@ -154,7 +154,7 @@
 {
     static char format[100];
 
-    sprintf(format, "%s %%d\n", valueString);
+    G_snprintf(format, 100, "%s %%d\n", valueString);
     if (fprintf(fp, format, value) < 0)
         fatalError("writeHeaderString: header value invalid");
 }
@@ -164,7 +164,7 @@
 {
     static char format[100];
 
-    sprintf(format, "%s %%s\n", valueString);
+    G_snprintf(format, 100, "%s %%s\n", valueString);
     if (fprintf(fp, format, value) < 0)
         fatalError("writeHeaderString: header value invalid");
 }
@@ -190,10 +190,12 @@
         fp = stdout;
 
     if (!param.header->answer) {
+        
         /* Do not print the new header in grass compatibility mode */
         if (!param.grass6->answer) {
+            /* Write the version information */
             writeHeaderString3(fp, "version:", "grass7");
-
+            /* Write the row and depth order information */
             if (!param.depth->answer && !param.row->answer)
                 writeHeaderString3(fp, "order:", "nsbt");
             else if (param.depth->answer && !param.row->answer)
@@ -225,9 +227,8 @@
 
 void G3dToascii(FILE * fp, G3D_Region region, int decim)
 {
-    double d1 = 0;
-    double *d1p;
-    float *f1p;
+    DCELL dvalue;
+    FCELL fvalue;
     int x, y, z;
     int rows, cols, depths, typeIntern;
     int col, row, depth;
@@ -238,11 +239,9 @@
 
     typeIntern = G3d_tileTypeMap(map);
 
-    d1p = &d1;
-    f1p = (float *) &d1;
-
-    for (z = 0; z < depths; z++)
-        for (y = 0; y < rows; y++) { /* rows count from south to north */
+    for (z = 0; z < depths; z++) {
+        G_percent(z, depths, 1);
+        for (y = 0; y < rows; y++) { /* g3d rows count from south to north */
             for (x = 0; x < cols; x++) {
 
                 /* From west to east */
@@ -263,22 +262,30 @@
                     depth = depths - z - 1;
 
                 /* Get the data and resample if nessessary */
-                G3d_getValue(map, col, row, depth, d1p, typeIntern);
 
                 if (typeIntern == FCELL_TYPE) {
-                    if (G3d_isNullValueNum(f1p, FCELL_TYPE))
+                    
+                    G3d_getValue(map, col, row, depth, &fvalue, FCELL_TYPE);
+                    
+                    if (G3d_isNullValueNum(&fvalue, FCELL_TYPE))
                         fprintf(fp, "%s ", param.null_val->answer);
                     else
-                        fprintf(fp, "%.*f ", decim, *f1p);
+                        fprintf(fp, "%.*f ", decim, fvalue);
                 } else {
-                    if (G3d_isNullValueNum(&d1, DCELL_TYPE))
+                    
+                    G3d_getValue(map, col, row, depth, &dvalue, DCELL_TYPE);
+                    
+                    if (G3d_isNullValueNum(&dvalue, DCELL_TYPE))
                         fprintf(fp, "%s ", param.null_val->answer);
                     else
-                        fprintf(fp, "%.*lf ", decim, d1);
+                        fprintf(fp, "%.*lf ", decim, dvalue);
                 }
             }
             fprintf(fp, "\n");
         }
+    }
+    G_percent(1, 1, 1);
+    G_percent_reset();
 }
 
 /*---------------------------------------------------------------------------*/
@@ -330,7 +337,7 @@
 
     /* Open the map and use XY cache mode */
     map = G3d_openCellOld(input, G_find_grid3(input, ""), &region,
-                          G3D_TILE_SAME_AS_FILE, G3D_USE_CACHE_XY);
+                          G3D_TILE_SAME_AS_FILE, G3D_USE_CACHE_DEFAULT);
 
     if (map == NULL)
         G3d_fatalError(_("Error opening 3d raster map"));

Modified: grass/trunk/raster3d/r3.out.ascii/r3.out.ascii.html
===================================================================
--- grass/trunk/raster3d/r3.out.ascii/r3.out.ascii.html	2011-06-16 23:46:32 UTC (rev 46726)
+++ grass/trunk/raster3d/r3.out.ascii/r3.out.ascii.html	2011-06-17 16:21:49 UTC (rev 46727)
@@ -5,7 +5,7 @@
 an ascii file which will be written in the current working directory.
 If <I>output</I> is not specified then <B>stdout</B> is used.  The
 <I>-h</I> flag may be used to suppress header information. The module is
-sensitive to region settings (set with g.region). The <em>-c</em> will create grass6
+sensitive to region settings (set with g.region). The <em>-c</em> flag will create grass6
 r3.in.ascii compatible output.
 
 
@@ -48,22 +48,28 @@
     <li><b>nsbt</b>:   north -> south and bottom -> top ordering which is the default (no flags)</li>
     <li><b>snbt</b>:   south -> north and bottom -> top ordering using <em>-r</em> flag</li>
     <li><b>nstb</b>:   north -> south and top -> bottom ordering using <em>-d</em> flag</li>
-    <li><b>nstb</b>:   south -> north and top -> bottom ordering using <em>-rd</em> flag</li>
+    <li><b>sntb</b>:   south -> north and top -> bottom ordering using <em>-rd</em> flag</li>
 </ul>
 
 The header is followed by cell values in <EM>floating point</EM> format.
 Cell values are output as a series of horizontal slices in row-major
-order.  That is, 
+order. That is in case of the default north -> south and bottom -> top (nsbt) ordering:
 
 <pre>
+(x, y + rows, z) (x + 1, y + rows, z) ... (x + cols, y + rows, z)
+      .                 .                           .
+      .                 .                           .
+      .                 .                           .
+(x, y + 1, z)   (x + 1, y + 1, z)   ...   (x + cols, y + 1, z)
   (x, y, z)       (x + 1, y, z)     ...     (x + cols, y, z)
-(x, y + 1, z)   (x + 1, y + 1, z)   ...   (x + cols, y + 1, z)
 
+(x, y + rows, z + 1)   (x + 1, y + rows, z + 1) ... (x + cols, y + rows, z + 1)
+
   and so on
 
 </pre>
+The data starts with the upper left corner (NW) at the bottom of the data set. 
 
-
 <P>
 One level maps can be imported with r.in.ascii (Raster 2D) using the default <B>nsbt</B> order
 and removing the header lines "version", "order", "top", "bottom" and "levels".
@@ -74,6 +80,6 @@
 
 <H2>AUTHORS</H2>
 Roman Waupotitsch, Michael Shapiro, 
-Helena Mitasova, Bill Brown, Lubos Mitas, Jaro Hofierka
+Helena Mitasova, Bill Brown, Lubos Mitas, Jaro Hofierka, Soeren Gebbert
 
 <p><i>Last changed: $Date$</i>

Added: grass/trunk/raster3d/r3.out.ascii/test.r3.out.ascii.sh
===================================================================
--- grass/trunk/raster3d/r3.out.ascii/test.r3.out.ascii.sh	                        (rev 0)
+++ grass/trunk/raster3d/r3.out.ascii/test.r3.out.ascii.sh	2011-06-17 16:21:49 UTC (rev 46727)
@@ -0,0 +1,80 @@
+# Tests for r3.out.ascii and r3.in.ascii
+# This script tests the export of voxel data using r3.out.ascii
+# as well as the inport of the generated data with r3.in.ascii 
+# using different row and depth ordering options.
+
+# We set up a specific region in the
+# @preprocess step of this test. We generate
+# voxel data with r3.mapcalc. The region setting 
+# should work for UTM and LL test locations
+g.region s=0 n=80 w=0 e=120 b=0 t=50 res=10 res3=10 -p3
+# Now create several (float, double, null value) voxel map 
+# with value = col + row + depth. Beware the 
+# raster3d module count from south to north.
+r3.mapcalc --o expr="volume_float = float(col() + row() + depth())"
+r3.mapcalc --o expr="volume_double = double(col() + row() + depth())"
+# Add null value information
+r3.mapcalc --o expr="volume_float_null = if(row() == 1 || row() == 5, null(), volume_float)"
+r3.mapcalc --o expr="volume_double_null = if(row() == 1 || row() == 5, null(), volume_double)"
+
+# We export float data in the first @test using different order and precision
+# as text @files for valdiation of correct ordering and null data handling
+r3.out.ascii --o     input=volume_float_null output=test_float_nsbt_null.txt dp=0 null=*
+r3.out.ascii --o -r  input=volume_float_null output=test_float_snbt_null.txt dp=0 null=*
+r3.out.ascii --o -d  input=volume_float_null output=test_float_nstb_null.txt dp=0 null=*
+r3.out.ascii --o -rd input=volume_float_null output=test_float_sntb_null.txt dp=0 null=*
+# Different precision and null values than default
+r3.out.ascii --o     input=volume_float_null output=test_float_nsbt_null_prec5.txt dp=5 null=-1000
+r3.out.ascii --o -rd input=volume_float_null output=test_float_sntb_null_prec8.txt dp=8 null=-2000
+# Test the no header and grass6 compatibility flags
+r3.out.ascii --o -h input=volume_float_null output=test_float_nsbt_null_no_header.txt dp=3 null=*
+r3.out.ascii --o -c input=volume_float_null output=test_float_nsbt_null_grass6_comp_1.txt dp=3 null=*
+# Any row or depth order should be ignored in case grass6 compatibility is enabled
+# The rsult of comp_1, _2 and _3 must be identical
+r3.out.ascii --o -cr  input=volume_float_null output=test_float_nsbt_null_grass6_comp_2.txt dp=3 null=*
+r3.out.ascii --o -crd input=volume_float_null output=test_float_nsbt_null_grass6_comp_3.txt dp=3 null=*
+
+# We export double data in the second @test using different order and precision
+# as text @files for valdiation of correct ordering and null data handling. Its hte same
+# procedure as with float data
+r3.out.ascii --o     input=volume_double_null output=test_double_nsbt_null.txt dp=0 null=*
+r3.out.ascii --o -r  input=volume_double_null output=test_double_snbt_null.txt dp=0 null=*
+r3.out.ascii --o -d  input=volume_double_null output=test_double_nstb_null.txt dp=0 null=*
+r3.out.ascii --o -rd input=volume_double_null output=test_double_sntb_null.txt dp=0 null=*
+# Different precision and null values than default
+r3.out.ascii --o     input=volume_double_null output=test_double_nsbt_null_prec5.txt dp=5 null=-1000
+r3.out.ascii --o -rd input=volume_double_null output=test_double_sntb_null_prec8.txt dp=8 null=-2000
+# Test the no header and grass6 compatibility flags
+r3.out.ascii --o -h input=volume_double_null output=test_double_nsbt_null_no_header.txt dp=3 null=*
+r3.out.ascii --o -c input=volume_double_null output=test_double_nsbt_null_grass6_comp_1.txt dp=3 null=*
+# Any row or depth order should be ignored in case grass6 compatibility is enabled
+# The result of comp_1, _2 and _3 must be identical
+r3.out.ascii --o -cr  input=volume_double_null output=test_double_nsbt_null_grass6_comp_2.txt dp=3 null=*
+r3.out.ascii --o -crd input=volume_double_null output=test_double_nsbt_null_grass6_comp_3.txt dp=3 null=*
+
+# In the third @test we import all the generated data using r3.in.ascii
+# The created @raster maps should be identical to the map "volume_double_null"
+# The export of the created g3d map should use as @precision=0 for data validation
+# The same raster name is used for all the imported data and so for the validation reference file
+r3.in.ascii --o output=test_double_nsbt_null input=test_double_nsbt_null.ref nv=*
+r3.in.ascii --o output=test_double_nsbt_null input=test_double_snbt_null.ref nv=*
+r3.in.ascii --o output=test_double_nsbt_null input=test_double_nstb_null.ref nv=*
+r3.in.ascii --o output=test_double_nsbt_null input=test_double_sntb_null.ref nv=*
+# Different precision and null values than default
+r3.in.ascii --o output=test_double_nsbt_null input=test_double_nsbt_null_prec5.ref nv=-1000
+r3.in.ascii --o output=test_double_nsbt_null input=test_double_sntb_null_prec8.ref nv=-2000
+# Any row or depth order should be ignored in case grass6 compatibility is enabled
+r3.in.ascii --o output=test_double_nsbt_null input=test_double_nsbt_null_grass6_comp_1.ref
+
+# In this @preprocess step for the last test we create a large region and 
+# generate large input data to test the handling of large files
+g.region s=0 n=800 w=0 e=1200 b=0 t=50 res=10 res3=1.5 -p3
+r3.mapcalc --o expr="volume_double_large = double(col() + row() + depth())"
+# Add null value information
+r3.mapcalc --o expr="volume_double_null_large = if(row() == 1 || row() == 5, null(), volume_double_large)"
+
+# Now @test the export and import of large data without validation
+r3.out.ascii --o input=volume_double_null_large output=test_double_nsbt_null_large.txt dp=0 null=*
+r3.in.ascii --o output=test_double_nsbt_null_large input=test_double_nsbt_null_large.txt nv=*
+# Just for the logs
+r3.info test_double_nsbt_null_large
\ No newline at end of file

Added: grass/trunk/raster3d/r3.out.ascii/test_double_nsbt_null.ref
===================================================================
--- grass/trunk/raster3d/r3.out.ascii/test_double_nsbt_null.ref	                        (rev 0)
+++ grass/trunk/raster3d/r3.out.ascii/test_double_nsbt_null.ref	2011-06-17 16:21:49 UTC (rev 46727)
@@ -0,0 +1,51 @@
+version: grass7
+order: nsbt
+north: 80.000000
+south: 0.000000
+east: 120.000000
+west: 0.000000
+top: 50.000000
+bottom: 0.000000
+rows: 8
+cols: 12
+levels: 5
+10 11 12 13 14 15 16 17 18 19 20 21 
+9 10 11 12 13 14 15 16 17 18 19 20 
+8 9 10 11 12 13 14 15 16 17 18 19 
+* * * * * * * * * * * * 
+6 7 8 9 10 11 12 13 14 15 16 17 
+5 6 7 8 9 10 11 12 13 14 15 16 
+4 5 6 7 8 9 10 11 12 13 14 15 
+* * * * * * * * * * * * 
+11 12 13 14 15 16 17 18 19 20 21 22 
+10 11 12 13 14 15 16 17 18 19 20 21 
+9 10 11 12 13 14 15 16 17 18 19 20 
+* * * * * * * * * * * * 
+7 8 9 10 11 12 13 14 15 16 17 18 
+6 7 8 9 10 11 12 13 14 15 16 17 
+5 6 7 8 9 10 11 12 13 14 15 16 
+* * * * * * * * * * * * 
+12 13 14 15 16 17 18 19 20 21 22 23 
+11 12 13 14 15 16 17 18 19 20 21 22 
+10 11 12 13 14 15 16 17 18 19 20 21 
+* * * * * * * * * * * * 
+8 9 10 11 12 13 14 15 16 17 18 19 
+7 8 9 10 11 12 13 14 15 16 17 18 
+6 7 8 9 10 11 12 13 14 15 16 17 
+* * * * * * * * * * * * 
+13 14 15 16 17 18 19 20 21 22 23 24 
+12 13 14 15 16 17 18 19 20 21 22 23 
+11 12 13 14 15 16 17 18 19 20 21 22 
+* * * * * * * * * * * * 
+9 10 11 12 13 14 15 16 17 18 19 20 
+8 9 10 11 12 13 14 15 16 17 18 19 
+7 8 9 10 11 12 13 14 15 16 17 18 
+* * * * * * * * * * * * 
+14 15 16 17 18 19 20 21 22 23 24 25 
+13 14 15 16 17 18 19 20 21 22 23 24 
+12 13 14 15 16 17 18 19 20 21 22 23 
+* * * * * * * * * * * * 
+10 11 12 13 14 15 16 17 18 19 20 21 
+9 10 11 12 13 14 15 16 17 18 19 20 
+8 9 10 11 12 13 14 15 16 17 18 19 
+* * * * * * * * * * * * 

Added: grass/trunk/raster3d/r3.out.ascii/test_double_nsbt_null_grass6_comp_1.ref
===================================================================
--- grass/trunk/raster3d/r3.out.ascii/test_double_nsbt_null_grass6_comp_1.ref	                        (rev 0)
+++ grass/trunk/raster3d/r3.out.ascii/test_double_nsbt_null_grass6_comp_1.ref	2011-06-17 16:21:49 UTC (rev 46727)
@@ -0,0 +1,49 @@
+north: 80.000000
+south: 0.000000
+east: 120.000000
+west: 0.000000
+top: 50.000000
+bottom: 0.000000
+rows: 8
+cols: 12
+levels: 5
+10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 
+9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 
+8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 
+* * * * * * * * * * * * 
+6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 
+5.000 6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 
+4.000 5.000 6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 
+* * * * * * * * * * * * 
+11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 
+10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 
+9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 
+* * * * * * * * * * * * 
+7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 
+6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 
+5.000 6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 
+* * * * * * * * * * * * 
+12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 
+11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 
+10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 
+* * * * * * * * * * * * 
+8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 
+7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 
+6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 
+* * * * * * * * * * * * 
+13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 24.000 
+12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 
+11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 
+* * * * * * * * * * * * 
+9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 
+8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 
+7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 
+* * * * * * * * * * * * 
+14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 24.000 25.000 
+13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 24.000 
+12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 
+* * * * * * * * * * * * 
+10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 
+9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 
+8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 
+* * * * * * * * * * * * 

Added: grass/trunk/raster3d/r3.out.ascii/test_double_nsbt_null_grass6_comp_2.ref
===================================================================
--- grass/trunk/raster3d/r3.out.ascii/test_double_nsbt_null_grass6_comp_2.ref	                        (rev 0)
+++ grass/trunk/raster3d/r3.out.ascii/test_double_nsbt_null_grass6_comp_2.ref	2011-06-17 16:21:49 UTC (rev 46727)
@@ -0,0 +1,49 @@
+north: 80.000000
+south: 0.000000
+east: 120.000000
+west: 0.000000
+top: 50.000000
+bottom: 0.000000
+rows: 8
+cols: 12
+levels: 5
+10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 
+9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 
+8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 
+* * * * * * * * * * * * 
+6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 
+5.000 6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 
+4.000 5.000 6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 
+* * * * * * * * * * * * 
+11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 
+10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 
+9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 
+* * * * * * * * * * * * 
+7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 
+6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 
+5.000 6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 
+* * * * * * * * * * * * 
+12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 
+11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 
+10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 
+* * * * * * * * * * * * 
+8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 
+7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 
+6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 
+* * * * * * * * * * * * 
+13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 24.000 
+12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 
+11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 
+* * * * * * * * * * * * 
+9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 
+8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 
+7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 
+* * * * * * * * * * * * 
+14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 24.000 25.000 
+13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 24.000 
+12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 
+* * * * * * * * * * * * 
+10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 
+9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 
+8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 
+* * * * * * * * * * * * 

Added: grass/trunk/raster3d/r3.out.ascii/test_double_nsbt_null_grass6_comp_3.ref
===================================================================
--- grass/trunk/raster3d/r3.out.ascii/test_double_nsbt_null_grass6_comp_3.ref	                        (rev 0)
+++ grass/trunk/raster3d/r3.out.ascii/test_double_nsbt_null_grass6_comp_3.ref	2011-06-17 16:21:49 UTC (rev 46727)
@@ -0,0 +1,49 @@
+north: 80.000000
+south: 0.000000
+east: 120.000000
+west: 0.000000
+top: 50.000000
+bottom: 0.000000
+rows: 8
+cols: 12
+levels: 5
+10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 
+9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 
+8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 
+* * * * * * * * * * * * 
+6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 
+5.000 6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 
+4.000 5.000 6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 
+* * * * * * * * * * * * 
+11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 
+10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 
+9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 
+* * * * * * * * * * * * 
+7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 
+6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 
+5.000 6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 
+* * * * * * * * * * * * 
+12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 
+11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 
+10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 
+* * * * * * * * * * * * 
+8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 
+7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 
+6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 
+* * * * * * * * * * * * 
+13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 24.000 
+12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 
+11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 
+* * * * * * * * * * * * 
+9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 
+8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 
+7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 
+* * * * * * * * * * * * 
+14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 24.000 25.000 
+13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 24.000 
+12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 
+* * * * * * * * * * * * 
+10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 
+9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 
+8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 
+* * * * * * * * * * * * 

Added: grass/trunk/raster3d/r3.out.ascii/test_double_nsbt_null_no_header.ref
===================================================================
--- grass/trunk/raster3d/r3.out.ascii/test_double_nsbt_null_no_header.ref	                        (rev 0)
+++ grass/trunk/raster3d/r3.out.ascii/test_double_nsbt_null_no_header.ref	2011-06-17 16:21:49 UTC (rev 46727)
@@ -0,0 +1,40 @@
+10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 
+9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 
+8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 
+* * * * * * * * * * * * 
+6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 
+5.000 6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 
+4.000 5.000 6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 
+* * * * * * * * * * * * 
+11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 
+10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 
+9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 
+* * * * * * * * * * * * 
+7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 
+6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 
+5.000 6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 
+* * * * * * * * * * * * 
+12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 
+11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 
+10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 
+* * * * * * * * * * * * 
+8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 
+7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 
+6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 
+* * * * * * * * * * * * 
+13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 24.000 
+12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 
+11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 
+* * * * * * * * * * * * 
+9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 
+8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 
+7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 
+* * * * * * * * * * * * 
+14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 24.000 25.000 
+13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 24.000 
+12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 
+* * * * * * * * * * * * 
+10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 
+9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 
+8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 
+* * * * * * * * * * * * 

Added: grass/trunk/raster3d/r3.out.ascii/test_double_nsbt_null_prec5.ref
===================================================================
--- grass/trunk/raster3d/r3.out.ascii/test_double_nsbt_null_prec5.ref	                        (rev 0)
+++ grass/trunk/raster3d/r3.out.ascii/test_double_nsbt_null_prec5.ref	2011-06-17 16:21:49 UTC (rev 46727)
@@ -0,0 +1,51 @@
+version: grass7
+order: nsbt
+north: 80.000000
+south: 0.000000
+east: 120.000000
+west: 0.000000
+top: 50.000000
+bottom: 0.000000
+rows: 8
+cols: 12
+levels: 5
+10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 20.00000 21.00000 
+9.00000 10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 20.00000 
+8.00000 9.00000 10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 
+-1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 
+6.00000 7.00000 8.00000 9.00000 10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 
+5.00000 6.00000 7.00000 8.00000 9.00000 10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 
+4.00000 5.00000 6.00000 7.00000 8.00000 9.00000 10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 
+-1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 
+11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 20.00000 21.00000 22.00000 
+10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 20.00000 21.00000 
+9.00000 10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 20.00000 
+-1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 
+7.00000 8.00000 9.00000 10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 
+6.00000 7.00000 8.00000 9.00000 10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 
+5.00000 6.00000 7.00000 8.00000 9.00000 10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 
+-1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 
+12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 20.00000 21.00000 22.00000 23.00000 
+11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 20.00000 21.00000 22.00000 
+10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 20.00000 21.00000 
+-1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 
+8.00000 9.00000 10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 
+7.00000 8.00000 9.00000 10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 
+6.00000 7.00000 8.00000 9.00000 10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 
+-1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 
+13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 20.00000 21.00000 22.00000 23.00000 24.00000 
+12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 20.00000 21.00000 22.00000 23.00000 
+11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 20.00000 21.00000 22.00000 
+-1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 
+9.00000 10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 20.00000 
+8.00000 9.00000 10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 
+7.00000 8.00000 9.00000 10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 
+-1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 
+14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 20.00000 21.00000 22.00000 23.00000 24.00000 25.00000 
+13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 20.00000 21.00000 22.00000 23.00000 24.00000 
+12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 20.00000 21.00000 22.00000 23.00000 
+-1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 
+10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 20.00000 21.00000 
+9.00000 10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 20.00000 
+8.00000 9.00000 10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 
+-1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 

Added: grass/trunk/raster3d/r3.out.ascii/test_double_nstb_null.ref
===================================================================
--- grass/trunk/raster3d/r3.out.ascii/test_double_nstb_null.ref	                        (rev 0)
+++ grass/trunk/raster3d/r3.out.ascii/test_double_nstb_null.ref	2011-06-17 16:21:49 UTC (rev 46727)
@@ -0,0 +1,51 @@
+version: grass7
+order: nstb
+north: 80.000000
+south: 0.000000
+east: 120.000000
+west: 0.000000
+top: 50.000000
+bottom: 0.000000
+rows: 8
+cols: 12
+levels: 5
+14 15 16 17 18 19 20 21 22 23 24 25 
+13 14 15 16 17 18 19 20 21 22 23 24 
+12 13 14 15 16 17 18 19 20 21 22 23 
+* * * * * * * * * * * * 
+10 11 12 13 14 15 16 17 18 19 20 21 
+9 10 11 12 13 14 15 16 17 18 19 20 
+8 9 10 11 12 13 14 15 16 17 18 19 
+* * * * * * * * * * * * 
+13 14 15 16 17 18 19 20 21 22 23 24 
+12 13 14 15 16 17 18 19 20 21 22 23 
+11 12 13 14 15 16 17 18 19 20 21 22 
+* * * * * * * * * * * * 
+9 10 11 12 13 14 15 16 17 18 19 20 
+8 9 10 11 12 13 14 15 16 17 18 19 
+7 8 9 10 11 12 13 14 15 16 17 18 
+* * * * * * * * * * * * 
+12 13 14 15 16 17 18 19 20 21 22 23 
+11 12 13 14 15 16 17 18 19 20 21 22 
+10 11 12 13 14 15 16 17 18 19 20 21 
+* * * * * * * * * * * * 
+8 9 10 11 12 13 14 15 16 17 18 19 
+7 8 9 10 11 12 13 14 15 16 17 18 
+6 7 8 9 10 11 12 13 14 15 16 17 
+* * * * * * * * * * * * 
+11 12 13 14 15 16 17 18 19 20 21 22 
+10 11 12 13 14 15 16 17 18 19 20 21 
+9 10 11 12 13 14 15 16 17 18 19 20 
+* * * * * * * * * * * * 
+7 8 9 10 11 12 13 14 15 16 17 18 
+6 7 8 9 10 11 12 13 14 15 16 17 
+5 6 7 8 9 10 11 12 13 14 15 16 
+* * * * * * * * * * * * 
+10 11 12 13 14 15 16 17 18 19 20 21 
+9 10 11 12 13 14 15 16 17 18 19 20 
+8 9 10 11 12 13 14 15 16 17 18 19 
+* * * * * * * * * * * * 
+6 7 8 9 10 11 12 13 14 15 16 17 
+5 6 7 8 9 10 11 12 13 14 15 16 
+4 5 6 7 8 9 10 11 12 13 14 15 
+* * * * * * * * * * * * 

Added: grass/trunk/raster3d/r3.out.ascii/test_double_snbt_null.ref
===================================================================
--- grass/trunk/raster3d/r3.out.ascii/test_double_snbt_null.ref	                        (rev 0)
+++ grass/trunk/raster3d/r3.out.ascii/test_double_snbt_null.ref	2011-06-17 16:21:49 UTC (rev 46727)
@@ -0,0 +1,51 @@
+version: grass7
+order: snbt
+north: 80.000000
+south: 0.000000
+east: 120.000000
+west: 0.000000
+top: 50.000000
+bottom: 0.000000
+rows: 8
+cols: 12
+levels: 5
+* * * * * * * * * * * * 
+4 5 6 7 8 9 10 11 12 13 14 15 
+5 6 7 8 9 10 11 12 13 14 15 16 
+6 7 8 9 10 11 12 13 14 15 16 17 
+* * * * * * * * * * * * 
+8 9 10 11 12 13 14 15 16 17 18 19 
+9 10 11 12 13 14 15 16 17 18 19 20 
+10 11 12 13 14 15 16 17 18 19 20 21 
+* * * * * * * * * * * * 
+5 6 7 8 9 10 11 12 13 14 15 16 
+6 7 8 9 10 11 12 13 14 15 16 17 
+7 8 9 10 11 12 13 14 15 16 17 18 
+* * * * * * * * * * * * 
+9 10 11 12 13 14 15 16 17 18 19 20 
+10 11 12 13 14 15 16 17 18 19 20 21 
+11 12 13 14 15 16 17 18 19 20 21 22 
+* * * * * * * * * * * * 
+6 7 8 9 10 11 12 13 14 15 16 17 
+7 8 9 10 11 12 13 14 15 16 17 18 
+8 9 10 11 12 13 14 15 16 17 18 19 
+* * * * * * * * * * * * 
+10 11 12 13 14 15 16 17 18 19 20 21 
+11 12 13 14 15 16 17 18 19 20 21 22 
+12 13 14 15 16 17 18 19 20 21 22 23 
+* * * * * * * * * * * * 
+7 8 9 10 11 12 13 14 15 16 17 18 
+8 9 10 11 12 13 14 15 16 17 18 19 
+9 10 11 12 13 14 15 16 17 18 19 20 
+* * * * * * * * * * * * 
+11 12 13 14 15 16 17 18 19 20 21 22 
+12 13 14 15 16 17 18 19 20 21 22 23 
+13 14 15 16 17 18 19 20 21 22 23 24 
+* * * * * * * * * * * * 
+8 9 10 11 12 13 14 15 16 17 18 19 
+9 10 11 12 13 14 15 16 17 18 19 20 
+10 11 12 13 14 15 16 17 18 19 20 21 
+* * * * * * * * * * * * 
+12 13 14 15 16 17 18 19 20 21 22 23 
+13 14 15 16 17 18 19 20 21 22 23 24 
+14 15 16 17 18 19 20 21 22 23 24 25 

Added: grass/trunk/raster3d/r3.out.ascii/test_double_sntb_null.ref
===================================================================
--- grass/trunk/raster3d/r3.out.ascii/test_double_sntb_null.ref	                        (rev 0)
+++ grass/trunk/raster3d/r3.out.ascii/test_double_sntb_null.ref	2011-06-17 16:21:49 UTC (rev 46727)
@@ -0,0 +1,51 @@
+version: grass7
+order: sntb
+north: 80.000000
+south: 0.000000
+east: 120.000000
+west: 0.000000
+top: 50.000000
+bottom: 0.000000
+rows: 8
+cols: 12
+levels: 5
+* * * * * * * * * * * * 
+8 9 10 11 12 13 14 15 16 17 18 19 
+9 10 11 12 13 14 15 16 17 18 19 20 
+10 11 12 13 14 15 16 17 18 19 20 21 
+* * * * * * * * * * * * 
+12 13 14 15 16 17 18 19 20 21 22 23 
+13 14 15 16 17 18 19 20 21 22 23 24 
+14 15 16 17 18 19 20 21 22 23 24 25 
+* * * * * * * * * * * * 
+7 8 9 10 11 12 13 14 15 16 17 18 
+8 9 10 11 12 13 14 15 16 17 18 19 
+9 10 11 12 13 14 15 16 17 18 19 20 
+* * * * * * * * * * * * 
+11 12 13 14 15 16 17 18 19 20 21 22 
+12 13 14 15 16 17 18 19 20 21 22 23 
+13 14 15 16 17 18 19 20 21 22 23 24 
+* * * * * * * * * * * * 
+6 7 8 9 10 11 12 13 14 15 16 17 
+7 8 9 10 11 12 13 14 15 16 17 18 
+8 9 10 11 12 13 14 15 16 17 18 19 
+* * * * * * * * * * * * 
+10 11 12 13 14 15 16 17 18 19 20 21 
+11 12 13 14 15 16 17 18 19 20 21 22 
+12 13 14 15 16 17 18 19 20 21 22 23 
+* * * * * * * * * * * * 
+5 6 7 8 9 10 11 12 13 14 15 16 
+6 7 8 9 10 11 12 13 14 15 16 17 
+7 8 9 10 11 12 13 14 15 16 17 18 
+* * * * * * * * * * * * 
+9 10 11 12 13 14 15 16 17 18 19 20 
+10 11 12 13 14 15 16 17 18 19 20 21 
+11 12 13 14 15 16 17 18 19 20 21 22 
+* * * * * * * * * * * * 
+4 5 6 7 8 9 10 11 12 13 14 15 
+5 6 7 8 9 10 11 12 13 14 15 16 
+6 7 8 9 10 11 12 13 14 15 16 17 
+* * * * * * * * * * * * 
+8 9 10 11 12 13 14 15 16 17 18 19 
+9 10 11 12 13 14 15 16 17 18 19 20 
+10 11 12 13 14 15 16 17 18 19 20 21 

Added: grass/trunk/raster3d/r3.out.ascii/test_double_sntb_null_prec8.ref
===================================================================
--- grass/trunk/raster3d/r3.out.ascii/test_double_sntb_null_prec8.ref	                        (rev 0)
+++ grass/trunk/raster3d/r3.out.ascii/test_double_sntb_null_prec8.ref	2011-06-17 16:21:49 UTC (rev 46727)
@@ -0,0 +1,51 @@
+version: grass7
+order: sntb
+north: 80.000000
+south: 0.000000
+east: 120.000000
+west: 0.000000
+top: 50.000000
+bottom: 0.000000
+rows: 8
+cols: 12
+levels: 5
+-2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 
+8.00000000 9.00000000 10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 
+9.00000000 10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 20.00000000 
+10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 20.00000000 21.00000000 
+-2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 
+12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 20.00000000 21.00000000 22.00000000 23.00000000 
+13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 20.00000000 21.00000000 22.00000000 23.00000000 24.00000000 
+14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 20.00000000 21.00000000 22.00000000 23.00000000 24.00000000 25.00000000 
+-2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 
+7.00000000 8.00000000 9.00000000 10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 
+8.00000000 9.00000000 10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 
+9.00000000 10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 20.00000000 
+-2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 
+11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 20.00000000 21.00000000 22.00000000 
+12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 20.00000000 21.00000000 22.00000000 23.00000000 
+13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 20.00000000 21.00000000 22.00000000 23.00000000 24.00000000 
+-2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 
+6.00000000 7.00000000 8.00000000 9.00000000 10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 
+7.00000000 8.00000000 9.00000000 10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 
+8.00000000 9.00000000 10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 
+-2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 
+10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 20.00000000 21.00000000 
+11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 20.00000000 21.00000000 22.00000000 
+12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 20.00000000 21.00000000 22.00000000 23.00000000 
+-2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 
+5.00000000 6.00000000 7.00000000 8.00000000 9.00000000 10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 
+6.00000000 7.00000000 8.00000000 9.00000000 10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 
+7.00000000 8.00000000 9.00000000 10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 
+-2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 
+9.00000000 10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 20.00000000 
+10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 20.00000000 21.00000000 
+11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 20.00000000 21.00000000 22.00000000 
+-2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 
+4.00000000 5.00000000 6.00000000 7.00000000 8.00000000 9.00000000 10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 
+5.00000000 6.00000000 7.00000000 8.00000000 9.00000000 10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 
+6.00000000 7.00000000 8.00000000 9.00000000 10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 
+-2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 
+8.00000000 9.00000000 10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 
+9.00000000 10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 20.00000000 
+10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 20.00000000 21.00000000 

Added: grass/trunk/raster3d/r3.out.ascii/test_float_nsbt_null.ref
===================================================================
--- grass/trunk/raster3d/r3.out.ascii/test_float_nsbt_null.ref	                        (rev 0)
+++ grass/trunk/raster3d/r3.out.ascii/test_float_nsbt_null.ref	2011-06-17 16:21:49 UTC (rev 46727)
@@ -0,0 +1,51 @@
+version: grass7
+order: nsbt
+north: 80.000000
+south: 0.000000
+east: 120.000000
+west: 0.000000
+top: 50.000000
+bottom: 0.000000
+rows: 8
+cols: 12
+levels: 5
+10 11 12 13 14 15 16 17 18 19 20 21 
+9 10 11 12 13 14 15 16 17 18 19 20 
+8 9 10 11 12 13 14 15 16 17 18 19 
+* * * * * * * * * * * * 
+6 7 8 9 10 11 12 13 14 15 16 17 
+5 6 7 8 9 10 11 12 13 14 15 16 
+4 5 6 7 8 9 10 11 12 13 14 15 
+* * * * * * * * * * * * 
+11 12 13 14 15 16 17 18 19 20 21 22 
+10 11 12 13 14 15 16 17 18 19 20 21 
+9 10 11 12 13 14 15 16 17 18 19 20 
+* * * * * * * * * * * * 
+7 8 9 10 11 12 13 14 15 16 17 18 
+6 7 8 9 10 11 12 13 14 15 16 17 
+5 6 7 8 9 10 11 12 13 14 15 16 
+* * * * * * * * * * * * 
+12 13 14 15 16 17 18 19 20 21 22 23 
+11 12 13 14 15 16 17 18 19 20 21 22 
+10 11 12 13 14 15 16 17 18 19 20 21 
+* * * * * * * * * * * * 
+8 9 10 11 12 13 14 15 16 17 18 19 
+7 8 9 10 11 12 13 14 15 16 17 18 
+6 7 8 9 10 11 12 13 14 15 16 17 
+* * * * * * * * * * * * 
+13 14 15 16 17 18 19 20 21 22 23 24 
+12 13 14 15 16 17 18 19 20 21 22 23 
+11 12 13 14 15 16 17 18 19 20 21 22 
+* * * * * * * * * * * * 
+9 10 11 12 13 14 15 16 17 18 19 20 
+8 9 10 11 12 13 14 15 16 17 18 19 
+7 8 9 10 11 12 13 14 15 16 17 18 
+* * * * * * * * * * * * 
+14 15 16 17 18 19 20 21 22 23 24 25 
+13 14 15 16 17 18 19 20 21 22 23 24 
+12 13 14 15 16 17 18 19 20 21 22 23 
+* * * * * * * * * * * * 
+10 11 12 13 14 15 16 17 18 19 20 21 
+9 10 11 12 13 14 15 16 17 18 19 20 
+8 9 10 11 12 13 14 15 16 17 18 19 
+* * * * * * * * * * * * 

Added: grass/trunk/raster3d/r3.out.ascii/test_float_nsbt_null_grass6_comp_1.ref
===================================================================
--- grass/trunk/raster3d/r3.out.ascii/test_float_nsbt_null_grass6_comp_1.ref	                        (rev 0)
+++ grass/trunk/raster3d/r3.out.ascii/test_float_nsbt_null_grass6_comp_1.ref	2011-06-17 16:21:49 UTC (rev 46727)
@@ -0,0 +1,49 @@
+north: 80.000000
+south: 0.000000
+east: 120.000000
+west: 0.000000
+top: 50.000000
+bottom: 0.000000
+rows: 8
+cols: 12
+levels: 5
+10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 
+9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 
+8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 
+* * * * * * * * * * * * 
+6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 
+5.000 6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 
+4.000 5.000 6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 
+* * * * * * * * * * * * 
+11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 
+10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 
+9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 
+* * * * * * * * * * * * 
+7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 
+6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 
+5.000 6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 
+* * * * * * * * * * * * 
+12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 
+11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 
+10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 
+* * * * * * * * * * * * 
+8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 
+7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 
+6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 
+* * * * * * * * * * * * 
+13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 24.000 
+12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 
+11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 
+* * * * * * * * * * * * 
+9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 
+8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 
+7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 
+* * * * * * * * * * * * 
+14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 24.000 25.000 
+13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 24.000 
+12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 
+* * * * * * * * * * * * 
+10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 
+9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 
+8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 
+* * * * * * * * * * * * 

Added: grass/trunk/raster3d/r3.out.ascii/test_float_nsbt_null_grass6_comp_2.ref
===================================================================
--- grass/trunk/raster3d/r3.out.ascii/test_float_nsbt_null_grass6_comp_2.ref	                        (rev 0)
+++ grass/trunk/raster3d/r3.out.ascii/test_float_nsbt_null_grass6_comp_2.ref	2011-06-17 16:21:49 UTC (rev 46727)
@@ -0,0 +1,49 @@
+north: 80.000000
+south: 0.000000
+east: 120.000000
+west: 0.000000
+top: 50.000000
+bottom: 0.000000
+rows: 8
+cols: 12
+levels: 5
+10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 
+9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 
+8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 
+* * * * * * * * * * * * 
+6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 
+5.000 6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 
+4.000 5.000 6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 
+* * * * * * * * * * * * 
+11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 
+10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 
+9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 
+* * * * * * * * * * * * 
+7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 
+6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 
+5.000 6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 
+* * * * * * * * * * * * 
+12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 
+11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 
+10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 
+* * * * * * * * * * * * 
+8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 
+7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 
+6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 
+* * * * * * * * * * * * 
+13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 24.000 
+12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 
+11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 
+* * * * * * * * * * * * 
+9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 
+8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 
+7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 
+* * * * * * * * * * * * 
+14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 24.000 25.000 
+13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 24.000 
+12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 
+* * * * * * * * * * * * 
+10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 
+9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 
+8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 
+* * * * * * * * * * * * 

Added: grass/trunk/raster3d/r3.out.ascii/test_float_nsbt_null_grass6_comp_3.ref
===================================================================
--- grass/trunk/raster3d/r3.out.ascii/test_float_nsbt_null_grass6_comp_3.ref	                        (rev 0)
+++ grass/trunk/raster3d/r3.out.ascii/test_float_nsbt_null_grass6_comp_3.ref	2011-06-17 16:21:49 UTC (rev 46727)
@@ -0,0 +1,49 @@
+north: 80.000000
+south: 0.000000
+east: 120.000000
+west: 0.000000
+top: 50.000000
+bottom: 0.000000
+rows: 8
+cols: 12
+levels: 5
+10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 
+9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 
+8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 
+* * * * * * * * * * * * 
+6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 
+5.000 6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 
+4.000 5.000 6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 
+* * * * * * * * * * * * 
+11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 
+10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 
+9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 
+* * * * * * * * * * * * 
+7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 
+6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 
+5.000 6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 
+* * * * * * * * * * * * 
+12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 
+11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 
+10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 
+* * * * * * * * * * * * 
+8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 
+7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 
+6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 
+* * * * * * * * * * * * 
+13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 24.000 
+12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 
+11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 
+* * * * * * * * * * * * 
+9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 
+8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 
+7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 
+* * * * * * * * * * * * 
+14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 24.000 25.000 
+13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 24.000 
+12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 
+* * * * * * * * * * * * 
+10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 
+9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 
+8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 
+* * * * * * * * * * * * 

Added: grass/trunk/raster3d/r3.out.ascii/test_float_nsbt_null_no_header.ref
===================================================================
--- grass/trunk/raster3d/r3.out.ascii/test_float_nsbt_null_no_header.ref	                        (rev 0)
+++ grass/trunk/raster3d/r3.out.ascii/test_float_nsbt_null_no_header.ref	2011-06-17 16:21:49 UTC (rev 46727)
@@ -0,0 +1,40 @@
+10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 
+9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 
+8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 
+* * * * * * * * * * * * 
+6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 
+5.000 6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 
+4.000 5.000 6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 
+* * * * * * * * * * * * 
+11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 
+10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 
+9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 
+* * * * * * * * * * * * 
+7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 
+6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 
+5.000 6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 
+* * * * * * * * * * * * 
+12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 
+11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 
+10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 
+* * * * * * * * * * * * 
+8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 
+7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 
+6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 
+* * * * * * * * * * * * 
+13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 24.000 
+12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 
+11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 
+* * * * * * * * * * * * 
+9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 
+8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 
+7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 
+* * * * * * * * * * * * 
+14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 24.000 25.000 
+13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 24.000 
+12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 22.000 23.000 
+* * * * * * * * * * * * 
+10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 21.000 
+9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 
+8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 
+* * * * * * * * * * * * 

Added: grass/trunk/raster3d/r3.out.ascii/test_float_nsbt_null_prec5.ref
===================================================================
--- grass/trunk/raster3d/r3.out.ascii/test_float_nsbt_null_prec5.ref	                        (rev 0)
+++ grass/trunk/raster3d/r3.out.ascii/test_float_nsbt_null_prec5.ref	2011-06-17 16:21:49 UTC (rev 46727)
@@ -0,0 +1,51 @@
+version: grass7
+order: nsbt
+north: 80.000000
+south: 0.000000
+east: 120.000000
+west: 0.000000
+top: 50.000000
+bottom: 0.000000
+rows: 8
+cols: 12
+levels: 5
+10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 20.00000 21.00000 
+9.00000 10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 20.00000 
+8.00000 9.00000 10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 
+-1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 
+6.00000 7.00000 8.00000 9.00000 10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 
+5.00000 6.00000 7.00000 8.00000 9.00000 10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 
+4.00000 5.00000 6.00000 7.00000 8.00000 9.00000 10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 
+-1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 
+11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 20.00000 21.00000 22.00000 
+10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 20.00000 21.00000 
+9.00000 10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 20.00000 
+-1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 
+7.00000 8.00000 9.00000 10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 
+6.00000 7.00000 8.00000 9.00000 10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 
+5.00000 6.00000 7.00000 8.00000 9.00000 10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 
+-1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 
+12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 20.00000 21.00000 22.00000 23.00000 
+11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 20.00000 21.00000 22.00000 
+10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 20.00000 21.00000 
+-1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 
+8.00000 9.00000 10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 
+7.00000 8.00000 9.00000 10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 
+6.00000 7.00000 8.00000 9.00000 10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 
+-1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 
+13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 20.00000 21.00000 22.00000 23.00000 24.00000 
+12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 20.00000 21.00000 22.00000 23.00000 
+11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 20.00000 21.00000 22.00000 
+-1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 
+9.00000 10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 20.00000 
+8.00000 9.00000 10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 
+7.00000 8.00000 9.00000 10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 
+-1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 
+14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 20.00000 21.00000 22.00000 23.00000 24.00000 25.00000 
+13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 20.00000 21.00000 22.00000 23.00000 24.00000 
+12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 20.00000 21.00000 22.00000 23.00000 
+-1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 
+10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 20.00000 21.00000 
+9.00000 10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 20.00000 
+8.00000 9.00000 10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 17.00000 18.00000 19.00000 
+-1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1000 

Added: grass/trunk/raster3d/r3.out.ascii/test_float_nstb_null.ref
===================================================================
--- grass/trunk/raster3d/r3.out.ascii/test_float_nstb_null.ref	                        (rev 0)
+++ grass/trunk/raster3d/r3.out.ascii/test_float_nstb_null.ref	2011-06-17 16:21:49 UTC (rev 46727)
@@ -0,0 +1,51 @@
+version: grass7
+order: nstb
+north: 80.000000
+south: 0.000000
+east: 120.000000
+west: 0.000000
+top: 50.000000
+bottom: 0.000000
+rows: 8
+cols: 12
+levels: 5
+14 15 16 17 18 19 20 21 22 23 24 25 
+13 14 15 16 17 18 19 20 21 22 23 24 
+12 13 14 15 16 17 18 19 20 21 22 23 
+* * * * * * * * * * * * 
+10 11 12 13 14 15 16 17 18 19 20 21 
+9 10 11 12 13 14 15 16 17 18 19 20 
+8 9 10 11 12 13 14 15 16 17 18 19 
+* * * * * * * * * * * * 
+13 14 15 16 17 18 19 20 21 22 23 24 
+12 13 14 15 16 17 18 19 20 21 22 23 
+11 12 13 14 15 16 17 18 19 20 21 22 
+* * * * * * * * * * * * 
+9 10 11 12 13 14 15 16 17 18 19 20 
+8 9 10 11 12 13 14 15 16 17 18 19 
+7 8 9 10 11 12 13 14 15 16 17 18 
+* * * * * * * * * * * * 
+12 13 14 15 16 17 18 19 20 21 22 23 
+11 12 13 14 15 16 17 18 19 20 21 22 
+10 11 12 13 14 15 16 17 18 19 20 21 
+* * * * * * * * * * * * 
+8 9 10 11 12 13 14 15 16 17 18 19 
+7 8 9 10 11 12 13 14 15 16 17 18 
+6 7 8 9 10 11 12 13 14 15 16 17 
+* * * * * * * * * * * * 
+11 12 13 14 15 16 17 18 19 20 21 22 
+10 11 12 13 14 15 16 17 18 19 20 21 
+9 10 11 12 13 14 15 16 17 18 19 20 
+* * * * * * * * * * * * 
+7 8 9 10 11 12 13 14 15 16 17 18 
+6 7 8 9 10 11 12 13 14 15 16 17 
+5 6 7 8 9 10 11 12 13 14 15 16 
+* * * * * * * * * * * * 
+10 11 12 13 14 15 16 17 18 19 20 21 
+9 10 11 12 13 14 15 16 17 18 19 20 
+8 9 10 11 12 13 14 15 16 17 18 19 
+* * * * * * * * * * * * 
+6 7 8 9 10 11 12 13 14 15 16 17 
+5 6 7 8 9 10 11 12 13 14 15 16 
+4 5 6 7 8 9 10 11 12 13 14 15 
+* * * * * * * * * * * * 

Added: grass/trunk/raster3d/r3.out.ascii/test_float_snbt_null.ref
===================================================================
--- grass/trunk/raster3d/r3.out.ascii/test_float_snbt_null.ref	                        (rev 0)
+++ grass/trunk/raster3d/r3.out.ascii/test_float_snbt_null.ref	2011-06-17 16:21:49 UTC (rev 46727)
@@ -0,0 +1,51 @@
+version: grass7
+order: snbt
+north: 80.000000
+south: 0.000000
+east: 120.000000
+west: 0.000000
+top: 50.000000
+bottom: 0.000000
+rows: 8
+cols: 12
+levels: 5
+* * * * * * * * * * * * 
+4 5 6 7 8 9 10 11 12 13 14 15 
+5 6 7 8 9 10 11 12 13 14 15 16 
+6 7 8 9 10 11 12 13 14 15 16 17 
+* * * * * * * * * * * * 
+8 9 10 11 12 13 14 15 16 17 18 19 
+9 10 11 12 13 14 15 16 17 18 19 20 
+10 11 12 13 14 15 16 17 18 19 20 21 
+* * * * * * * * * * * * 
+5 6 7 8 9 10 11 12 13 14 15 16 
+6 7 8 9 10 11 12 13 14 15 16 17 
+7 8 9 10 11 12 13 14 15 16 17 18 
+* * * * * * * * * * * * 
+9 10 11 12 13 14 15 16 17 18 19 20 
+10 11 12 13 14 15 16 17 18 19 20 21 
+11 12 13 14 15 16 17 18 19 20 21 22 
+* * * * * * * * * * * * 
+6 7 8 9 10 11 12 13 14 15 16 17 
+7 8 9 10 11 12 13 14 15 16 17 18 
+8 9 10 11 12 13 14 15 16 17 18 19 
+* * * * * * * * * * * * 
+10 11 12 13 14 15 16 17 18 19 20 21 
+11 12 13 14 15 16 17 18 19 20 21 22 
+12 13 14 15 16 17 18 19 20 21 22 23 
+* * * * * * * * * * * * 
+7 8 9 10 11 12 13 14 15 16 17 18 
+8 9 10 11 12 13 14 15 16 17 18 19 
+9 10 11 12 13 14 15 16 17 18 19 20 
+* * * * * * * * * * * * 
+11 12 13 14 15 16 17 18 19 20 21 22 
+12 13 14 15 16 17 18 19 20 21 22 23 
+13 14 15 16 17 18 19 20 21 22 23 24 
+* * * * * * * * * * * * 
+8 9 10 11 12 13 14 15 16 17 18 19 
+9 10 11 12 13 14 15 16 17 18 19 20 
+10 11 12 13 14 15 16 17 18 19 20 21 
+* * * * * * * * * * * * 
+12 13 14 15 16 17 18 19 20 21 22 23 
+13 14 15 16 17 18 19 20 21 22 23 24 
+14 15 16 17 18 19 20 21 22 23 24 25 

Added: grass/trunk/raster3d/r3.out.ascii/test_float_sntb_null.ref
===================================================================
--- grass/trunk/raster3d/r3.out.ascii/test_float_sntb_null.ref	                        (rev 0)
+++ grass/trunk/raster3d/r3.out.ascii/test_float_sntb_null.ref	2011-06-17 16:21:49 UTC (rev 46727)
@@ -0,0 +1,51 @@
+version: grass7
+order: sntb
+north: 80.000000
+south: 0.000000
+east: 120.000000
+west: 0.000000
+top: 50.000000
+bottom: 0.000000
+rows: 8
+cols: 12
+levels: 5
+* * * * * * * * * * * * 
+8 9 10 11 12 13 14 15 16 17 18 19 
+9 10 11 12 13 14 15 16 17 18 19 20 
+10 11 12 13 14 15 16 17 18 19 20 21 
+* * * * * * * * * * * * 
+12 13 14 15 16 17 18 19 20 21 22 23 
+13 14 15 16 17 18 19 20 21 22 23 24 
+14 15 16 17 18 19 20 21 22 23 24 25 
+* * * * * * * * * * * * 
+7 8 9 10 11 12 13 14 15 16 17 18 
+8 9 10 11 12 13 14 15 16 17 18 19 
+9 10 11 12 13 14 15 16 17 18 19 20 
+* * * * * * * * * * * * 
+11 12 13 14 15 16 17 18 19 20 21 22 
+12 13 14 15 16 17 18 19 20 21 22 23 
+13 14 15 16 17 18 19 20 21 22 23 24 
+* * * * * * * * * * * * 
+6 7 8 9 10 11 12 13 14 15 16 17 
+7 8 9 10 11 12 13 14 15 16 17 18 
+8 9 10 11 12 13 14 15 16 17 18 19 
+* * * * * * * * * * * * 
+10 11 12 13 14 15 16 17 18 19 20 21 
+11 12 13 14 15 16 17 18 19 20 21 22 
+12 13 14 15 16 17 18 19 20 21 22 23 
+* * * * * * * * * * * * 
+5 6 7 8 9 10 11 12 13 14 15 16 
+6 7 8 9 10 11 12 13 14 15 16 17 
+7 8 9 10 11 12 13 14 15 16 17 18 
+* * * * * * * * * * * * 
+9 10 11 12 13 14 15 16 17 18 19 20 
+10 11 12 13 14 15 16 17 18 19 20 21 
+11 12 13 14 15 16 17 18 19 20 21 22 
+* * * * * * * * * * * * 
+4 5 6 7 8 9 10 11 12 13 14 15 
+5 6 7 8 9 10 11 12 13 14 15 16 
+6 7 8 9 10 11 12 13 14 15 16 17 
+* * * * * * * * * * * * 
+8 9 10 11 12 13 14 15 16 17 18 19 
+9 10 11 12 13 14 15 16 17 18 19 20 
+10 11 12 13 14 15 16 17 18 19 20 21 

Added: grass/trunk/raster3d/r3.out.ascii/test_float_sntb_null_prec8.ref
===================================================================
--- grass/trunk/raster3d/r3.out.ascii/test_float_sntb_null_prec8.ref	                        (rev 0)
+++ grass/trunk/raster3d/r3.out.ascii/test_float_sntb_null_prec8.ref	2011-06-17 16:21:49 UTC (rev 46727)
@@ -0,0 +1,51 @@
+version: grass7
+order: sntb
+north: 80.000000
+south: 0.000000
+east: 120.000000
+west: 0.000000
+top: 50.000000
+bottom: 0.000000
+rows: 8
+cols: 12
+levels: 5
+-2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 
+8.00000000 9.00000000 10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 
+9.00000000 10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 20.00000000 
+10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 20.00000000 21.00000000 
+-2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 
+12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 20.00000000 21.00000000 22.00000000 23.00000000 
+13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 20.00000000 21.00000000 22.00000000 23.00000000 24.00000000 
+14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 20.00000000 21.00000000 22.00000000 23.00000000 24.00000000 25.00000000 
+-2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 
+7.00000000 8.00000000 9.00000000 10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 
+8.00000000 9.00000000 10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 
+9.00000000 10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 20.00000000 
+-2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 
+11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 20.00000000 21.00000000 22.00000000 
+12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 20.00000000 21.00000000 22.00000000 23.00000000 
+13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 20.00000000 21.00000000 22.00000000 23.00000000 24.00000000 
+-2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 
+6.00000000 7.00000000 8.00000000 9.00000000 10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 
+7.00000000 8.00000000 9.00000000 10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 
+8.00000000 9.00000000 10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 
+-2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 
+10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 20.00000000 21.00000000 
+11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 20.00000000 21.00000000 22.00000000 
+12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 20.00000000 21.00000000 22.00000000 23.00000000 
+-2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 
+5.00000000 6.00000000 7.00000000 8.00000000 9.00000000 10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 
+6.00000000 7.00000000 8.00000000 9.00000000 10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 
+7.00000000 8.00000000 9.00000000 10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 
+-2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 
+9.00000000 10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 20.00000000 
+10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 20.00000000 21.00000000 
+11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 20.00000000 21.00000000 22.00000000 
+-2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 
+4.00000000 5.00000000 6.00000000 7.00000000 8.00000000 9.00000000 10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 
+5.00000000 6.00000000 7.00000000 8.00000000 9.00000000 10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 
+6.00000000 7.00000000 8.00000000 9.00000000 10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 
+-2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 
+8.00000000 9.00000000 10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 
+9.00000000 10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 20.00000000 
+10.00000000 11.00000000 12.00000000 13.00000000 14.00000000 15.00000000 16.00000000 17.00000000 18.00000000 19.00000000 20.00000000 21.00000000 

Modified: grass/trunk/raster3d/r3.out.vtk/test.r3.out.vtk.sh
===================================================================
--- grass/trunk/raster3d/r3.out.vtk/test.r3.out.vtk.sh	2011-06-16 23:46:32 UTC (rev 46726)
+++ grass/trunk/raster3d/r3.out.vtk/test.r3.out.vtk.sh	2011-06-17 16:21:49 UTC (rev 46727)
@@ -14,7 +14,7 @@
 r.mapcalc --o expr="elev_bottom = row()"
 r.mapcalc --o expr="elev_top = row() + 50"
 # Now create a voxel map with value = col + row + depth. Beware the 
-# raaster3d module count from south to north.
+# raster3d module count from south to north.
 r3.mapcalc --o expr="volume = col() + row() + depth()"
 # Add null value information
 r3.mapcalc --o expr="volume_null = if(row() == 2 || row() == 7, null(), volume)"
@@ -23,7 +23,7 @@
 
 # The first @test just exports the volume map as cell and point data
 # using alow precision and replaces the default null value with 0
-# the created @files should be compared with the reference data 
+# the created @files should be compared with the reference data.
 r3.out.vtk --o input=volume_null output=test_volume_null_1_cells.vtk dp=3 null=0
 r3.out.vtk -p --o input=volume_null output=test_volume_null_1_points.vtk dp=3 null=0
 



More information about the grass-commit mailing list