[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