[cig-commits] r4599 - in mc/3D/CitcomS/trunk: CitcomS/Solver lib module

tan2 at geodynamics.org tan2 at geodynamics.org
Sun Sep 24 00:28:19 PDT 2006


Author: tan2
Date: 2006-09-24 00:28:19 -0700 (Sun, 24 Sep 2006)
New Revision: 4599

Modified:
   mc/3D/CitcomS/trunk/CitcomS/Solver/Solver.py
   mc/3D/CitcomS/trunk/lib/Instructions.c
   mc/3D/CitcomS/trunk/lib/Output_h5.c
   mc/3D/CitcomS/trunk/lib/global_defs.h
   mc/3D/CitcomS/trunk/module/setProperties.cc
Log:
Added new input parameter 'datadir_old' in CitcomS.solver. If
output_format=ascii and restart=1, the restart files will be read from
${datadir_old}/${rank}/${datafile_old}.velo.${rank}.${step}. In this case,
'datafile_old' cannot contain '/'. See issue56.


Modified: mc/3D/CitcomS/trunk/CitcomS/Solver/Solver.py
===================================================================
--- mc/3D/CitcomS/trunk/CitcomS/Solver/Solver.py	2006-09-24 04:24:43 UTC (rev 4598)
+++ mc/3D/CitcomS/trunk/CitcomS/Solver/Solver.py	2006-09-24 07:28:19 UTC (rev 4599)
@@ -268,6 +268,7 @@
         visc = inv.facility("visc", factory=Visc)
 
         datadir = inv.str("datadir", default=".")
+        datadir_old = inv.str("datadir_old", default=".")
 
         rayleigh = inv.float("rayleigh", default=1e+05)
         Q0 = inv.float("Q0", default=0.0)

Modified: mc/3D/CitcomS/trunk/lib/Instructions.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Instructions.c	2006-09-24 04:24:43 UTC (rev 4598)
+++ mc/3D/CitcomS/trunk/lib/Instructions.c	2006-09-24 07:28:19 UTC (rev 4599)
@@ -267,6 +267,7 @@
 
   input_string("datadir",E->control.data_dir,".",m);
   input_string("datafile",E->control.data_file,"initialize",m);
+  input_string("datadir_old",E->control.data_dir_old,"initialize",m);
   input_string("datafile_old",E->control.old_P_file,"initialize",m);
 
   input_string("output_format",E->output.format,"ascii-local",m);
@@ -1036,6 +1037,18 @@
            E->control.data_file);
   strcpy(E->control.data_file, newdatafile);
 
+  if (E->control.restart) {
+      found = strchr(E->control.old_P_file, '/');
+      if (found) {
+	  fprintf(stderr, "error in input parameter: datafile_old='%s' contains '/'\n", E->control.data_file);
+	  parallel_process_termination();
+      }
+
+      /* prepend the path to old_P_file */
+      sprintf(newdatafile, "%s/%d/%s", E->control.data_dir_old, E->parallel.me,
+	      E->control.old_P_file);
+      strcpy(E->control.old_P_file, newdatafile);
+  }
 }
 
 

Modified: mc/3D/CitcomS/trunk/lib/Output_h5.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Output_h5.c	2006-09-24 04:24:43 UTC (rev 4598)
+++ mc/3D/CitcomS/trunk/lib/Output_h5.c	2006-09-24 07:28:19 UTC (rev 4599)
@@ -2143,6 +2143,7 @@
 
     status = set_attribute_string(input, "datadir", E->control.data_dir);
     status = set_attribute_string(input, "datafile", E->control.data_file);
+    status = set_attribute_string(input, "datadir_old", E->control.data_dir_old);
     status = set_attribute_string(input, "datafile_old", E->control.old_P_file);
 
     status = set_attribute(input, "rayleigh", H5T_NATIVE_FLOAT, &(E->control.Atemp));

Modified: mc/3D/CitcomS/trunk/lib/global_defs.h
===================================================================
--- mc/3D/CitcomS/trunk/lib/global_defs.h	2006-09-24 04:24:43 UTC (rev 4598)
+++ mc/3D/CitcomS/trunk/lib/global_defs.h	2006-09-24 07:28:19 UTC (rev 4599)
@@ -612,9 +612,10 @@
     char B_is_good[MAX_LEVELS];  /* general information controlling program flow */
     char Ahat_is_good[MAX_LEVELS];  /* general information controlling program flow */
 
-    char old_P_file[100];
     char data_dir[100];
     char data_file[100];
+    char data_dir_old[100];
+    char old_P_file[100];
     char post_topo_file[100];
     char slabgeoid_file[100];
 

Modified: mc/3D/CitcomS/trunk/module/setProperties.cc
===================================================================
--- mc/3D/CitcomS/trunk/module/setProperties.cc	2006-09-24 04:24:43 UTC (rev 4598)
+++ mc/3D/CitcomS/trunk/module/setProperties.cc	2006-09-24 07:28:19 UTC (rev 4599)
@@ -405,6 +405,7 @@
 
     getStringProperty(properties, "datadir", E->control.data_dir, out);
     getStringProperty(properties, "datafile", E->control.data_file, out);
+    getStringProperty(properties, "datadir_old", E->control.data_dir_old, out);
     getStringProperty(properties, "datafile_old", E->control.old_P_file, out);
 
     getScalarProperty(properties, "rayleigh", E->control.Atemp, out);



More information about the cig-commits mailing list