[SCM] Gerris Flow Solver branch, upstream, updated. b3aa46814a06c9cb2912790b23916ffb44f1f203

Stephane Popinet popinet at users.sf.net
Fri May 15 02:54:09 UTC 2009


The following commit has been merged in the upstream branch:
commit 7aee4b7bcab6d1ce36b589d8b765f1044854ec05
Author: Stephane Popinet <popinet at users.sf.net>
Date:   Tue Mar 20 11:57:58 2007 +1100

    Improved error messages for Cartesian grid interpolation
    
    darcs-hash:20070320005758-d4795-863816496242a24bfb6e9d55abf874c36fd2358a.gz

diff --git a/src/utils.c b/src/utils.c
index 1eb19e9..b5fafdd 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -238,7 +238,7 @@ static GfsCartesianGrid * read_cartesian_grid (gchar * name, GtsFile * fp)
 
   grid = gfs_cartesian_grid_new (klass);
 
-  (* klass->read)((GtsObject **)&grid, fp1);
+  (* klass->read) ((GtsObject **) &grid, fp1);
 
   if (fp1->type == GTS_ERROR) {
     gts_file_error (fp, "%s:%d:%d: %s", name, fp1->line, fp1->pos, fp1->error);
@@ -252,19 +252,22 @@ static GfsCartesianGrid * read_cartesian_grid (gchar * name, GtsFile * fp)
 
 static gboolean fit_index_dimension (GfsCartesianGrid * grid, guint * val, GtsFile * fp)
 {
-  guint i,j;
-  gchar liste[]={'x','y','z','t'};
+  guint i, j;
+  gchar liste[] = {'x','y','z','t'};
 
-  if (grid->N > 4) 
+  if (grid->N > 4) {
+    gts_file_error (fp, "Cartesian grids can only use four dimensions or less");
     return FALSE;
+  }
 
   for(i = 0; i < grid->N; i++) {
     for (j = 0; j < 4 && *grid->name[i] != liste[j]; j++);
-    if (j == 4)
+    if (j == 4) {
+      gts_file_error (fp, "unknown Cartesian grid index `%s'", grid->name[i]);
       return FALSE;
-    val[i]=j;
+    }
+    val[i] = j;
   }
-  //  fprintf(stderr,"%d %d %d %d\n",val[0],val[1],val[2],val[3]);
   return TRUE;
 }
 
@@ -282,15 +285,12 @@ static gdouble interpolated_cgd (GfsFunction * f, FttVector * p)
     case 3: vecteur[i] = gfs_object_simulation (f)->time.t; break;
     default: g_assert_not_reached ();
     }
-    
-  if(!gfs_cartesian_grid_interpolate (f->g, vecteur, &val))
+
+  if (!gfs_cartesian_grid_interpolate (f->g, vecteur, &val))
     return 0.;
   return val;
 }
 
-
-
-
 static gboolean load_module (GfsFunction * f, GtsFile * fp, gchar * mname)
 {
   gchar * path;
@@ -557,7 +557,7 @@ static void function_read (GtsObject ** o, GtsFile * fp)
 	  return;
 	f->sname = g_strdup (f->expr->str);
 	gts_file_next_token (fp);
-	  return;
+	return;
       }
       else if ((f->v = gfs_variable_from_name (domain->variables, f->expr->str))) {
 	gts_file_next_token (fp);
@@ -717,9 +717,7 @@ static void function_write (GtsObject * o, FILE * fp)
     fprintf (fp, " %s", g_module_name (f->module));
   else if (f->v)
     fprintf (fp, " %s", f->v->name);
-  else if (f->s)
-    fprintf (fp, " %s", f->sname);
-  else if (f->g)
+  else if (f->s || f->g)
     fprintf (fp, " %s", f->sname);
   else
     fprintf (fp, " %g", f->val);

-- 
Gerris Flow Solver



More information about the debian-science-commits mailing list