[SCM] Gerris Flow Solver branch, upstream, updated. e8f73a07832050124d2b8bf6c6f35b33180e65a8
Stephane Popinet
popinet at users.sf.net
Tue Nov 24 12:24:18 UTC 2009
The following commit has been merged in the upstream branch:
commit 4ee59fae8da99eb5633bb48e5e3e62a739db4766
Author: Stephane Popinet <popinet at users.sf.net>
Date: Sun Jun 28 19:54:13 2009 +1000
Added version info to read()/write() methods of GfsDomain
darcs-hash:20090628095413-d4795-b9622854f64884feac58caa8b2767c68dfc3b085.gz
diff --git a/src/domain.c b/src/domain.c
index 4deb65e..c6bbd45 100644
--- a/src/domain.c
+++ b/src/domain.c
@@ -29,6 +29,7 @@
#include "source.h"
#include "solid.h"
#include "adaptive.h"
+#include "version.h"
#include "config.h"
#ifdef HAVE_MPI
@@ -60,6 +61,7 @@ static void domain_write (GtsObject * o, FILE * fp)
fprintf (fp, "ly = %g ", domain->lambda.y);
if (domain->lambda.z != 1.)
fprintf (fp, "lz = %g ", domain->lambda.z);
+ fprintf (fp, "version = %d ", atoi (GFS_BUILD_VERSION));
if (domain->max_depth_write > -2) {
GSList * i = domain->variables_io;
@@ -91,6 +93,7 @@ static void domain_read (GtsObject ** o, GtsFile * fp)
{GTS_DOUBLE, "lz", TRUE},
{GTS_STRING, "variables", TRUE},
{GTS_INT, "binary", TRUE},
+ {GTS_INT, "version", TRUE},
{GTS_NONE}
};
gchar * variables = NULL;
@@ -100,6 +103,7 @@ static void domain_read (GtsObject ** o, GtsFile * fp)
if (fp->type == GTS_ERROR)
return;
+ domain->version = -1;
var[0].data = &domain->rootlevel;
var[1].data = &domain->refpos.x;
var[2].data = &domain->refpos.y;
@@ -109,6 +113,7 @@ static void domain_read (GtsObject ** o, GtsFile * fp)
var[6].data = &domain->lambda.z;
var[7].data = &variables;
var[8].data = &domain->binary;
+ var[9].data = &domain->version;
gts_file_assign_variables (fp, var);
if (fp->type == GTS_ERROR) {
g_free (variables);
@@ -295,9 +300,11 @@ static void domain_post_read (GfsDomain * domain, GtsFile * fp)
g_ptr_array_free (ids, TRUE);
gts_container_foreach (GTS_CONTAINER (domain), (GtsFunc) set_ref_pos, &domain->refpos);
- }
+ }
gfs_domain_match (domain);
+
+ domain->version = atoi (GFS_BUILD_VERSION);
}
static void free_pair (gpointer key, gpointer value)
@@ -420,6 +427,8 @@ static void domain_init (GfsDomain * domain)
domain->cell_init = (FttCellInitFunc) gfs_cell_fine_init;
domain->cell_init_data = domain;
+
+ domain->version = atoi (GFS_BUILD_VERSION);
}
GfsDomainClass * gfs_domain_class (void)
@@ -2656,7 +2665,8 @@ void gfs_cell_read_binary (FttCell * cell, GtsFile * fp, GfsDomain * domain)
gts_file_error (fp, "expecting numbers (solid->cm[0..%d])", FTT_DIMENSION - 1);
return;
}
- if (gts_file_read (fp, &s->solid->ca.x, sizeof (gdouble), FTT_DIMENSION) != FTT_DIMENSION) {
+ if (domain->version >= 90628 &&
+ gts_file_read (fp, &s->solid->ca.x, sizeof (gdouble), FTT_DIMENSION) != FTT_DIMENSION) {
gts_file_error (fp, "expecting numbers (solid->ca[0..%d])", FTT_DIMENSION - 1);
return;
}
diff --git a/src/domain.h b/src/domain.h
index f108a22..ac811f5 100644
--- a/src/domain.h
+++ b/src/domain.h
@@ -67,6 +67,8 @@ struct _GfsDomain {
FttCellInitFunc cell_init;
gpointer cell_init_data;
+
+ gint version;
};
struct _GfsDomainClass {
--
Gerris Flow Solver
More information about the debian-science-commits
mailing list