[cig-commits] r7289 - mc/3D/CitcomS/trunk/lib
tan2 at geodynamics.org
tan2 at geodynamics.org
Mon Jun 18 16:06:40 PDT 2007
Author: tan2
Date: 2007-06-18 16:06:40 -0700 (Mon, 18 Jun 2007)
New Revision: 7289
Modified:
mc/3D/CitcomS/trunk/lib/Instructions.c
mc/3D/CitcomS/trunk/lib/Tracer_setup.c
Log:
Fixing issue115: interference between restart=1 & tracer_ic_method
Previously, when "restart" is set, tracer_ic_method will be set to 2 (restart
tracers) by the code. Now, these two options are independent.
Modified: mc/3D/CitcomS/trunk/lib/Instructions.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Instructions.c 2007-06-18 21:08:14 UTC (rev 7288)
+++ mc/3D/CitcomS/trunk/lib/Instructions.c 2007-06-18 23:06:40 UTC (rev 7289)
@@ -1063,7 +1063,8 @@
parallel_process_termination();
}
- if (E->control.restart) {
+ if (E->control.restart ||
+ (E->control.tracer && E->trace.ic_method == 2)) {
found = strchr(E->control.data_prefix_old, '/');
if (found) {
fprintf(stderr, "error in input parameter: datafile_old='%s' contains '/'\n", E->control.data_file);
@@ -1165,7 +1166,8 @@
snprintf(E->control.data_file, 200, "%s/%s", E->control.data_dir,
E->control.data_prefix);
- if (E->control.restart) {
+ if (E->control.restart ||
+ (E->control.tracer && E->trace.ic_method == 2)) {
expand_datadir(E, E->control.data_dir_old);
snprintf(E->control.old_P_file, 200, "%s/%s", E->control.data_dir_old,
E->control.data_prefix_old);
Modified: mc/3D/CitcomS/trunk/lib/Tracer_setup.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Tracer_setup.c 2007-06-18 21:08:14 UTC (rev 7288)
+++ mc/3D/CitcomS/trunk/lib/Tracer_setup.c 2007-06-18 23:06:40 UTC (rev 7289)
@@ -80,28 +80,24 @@
input_int("tracer",&(E->control.tracer),"0",m);
if(E->control.tracer) {
- /* Initial condition, this option is ignored if E->control.restart is 1,
- * ie. restarted from a previous run */
/* tracer_ic_method=0 (random generated array) */
/* tracer_ic_method=1 (all proc read the same file) */
/* tracer_ic_method=2 (each proc reads its restart file) */
- if(E->control.restart)
- E->trace.ic_method = 2;
- else {
- input_int("tracer_ic_method",&(E->trace.ic_method),"0,0,nomax",m);
+ input_int("tracer_ic_method",&(E->trace.ic_method),"0,0,nomax",m);
- if (E->trace.ic_method==0)
- input_int("tracers_per_element",&(E->trace.itperel),"10,0,nomax",m);
- else if (E->trace.ic_method==1)
- input_string("tracer_file",E->trace.tracer_file,"tracer.dat",m);
- else if (E->trace.ic_method==2) {
- }
- else {
- fprintf(stderr,"Sorry, tracer_ic_method only 0, 1 and 2 available\n");
- fflush(stderr);
- parallel_process_termination();
- }
+ if (E->trace.ic_method==0)
+ input_int("tracers_per_element",&(E->trace.itperel),"10,0,nomax",m);
+ else if (E->trace.ic_method==1)
+ input_string("tracer_file",E->trace.tracer_file,"tracer.dat",m);
+ else if (E->trace.ic_method==2) {
+ /* Use 'datadir_old', 'datafile_old', and 'solution_cycles_init' */
+ /* to form the filename */
}
+ else {
+ fprintf(stderr,"Sorry, tracer_ic_method only 0, 1 and 2 available\n");
+ fflush(stderr);
+ parallel_process_termination();
+ }
/* How many flavors of tracers */
More information about the cig-commits
mailing list