[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