r22: Code cleaning
[ctsim.git] / src / phm2rs.c
index 53c6690028b103245275621f34cfb92bc1472a7d..0612fb945a14834bb80d13652d3b88ad991e58cd 100644 (file)
@@ -2,8 +2,21 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: phm2rs.c,v 1.2 2000/04/28 13:50:45 kevin Exp $
+**  $Id: phm2rs.c,v 1.6 2000/04/30 18:23:53 kevin Exp $
 **  $Log: phm2rs.c,v $
+**  Revision 1.6  2000/04/30 18:23:53  kevin
+**  Code cleaning
+**
+**  Revision 1.5  2000/04/30 10:13:27  kevin
+**  Fixed MPI bugs
+**
+**  Revision 1.4  2000/04/30 04:06:13  kevin
+**  Update Raysum i/o routines
+**  Fix MPI bug in ctrec (scatter_raysum) that referenced rs_global
+**
+**  Revision 1.3  2000/04/29 23:24:56  kevin
+**  *** empty log message ***
+**
 **  Revision 1.2  2000/04/28 13:50:45  kevin
 **  Removed Makefile Makefile.in that are automatically generated by autoconf
 **
@@ -43,7 +56,6 @@
 #define O_VERBOSE    6
 #define O_HELP       7
 #define O_PICFILE    8
-#define O_INMEMORY   9
 #define O_DEBUG     10
 #define O_VERSION   11
 
@@ -58,7 +70,6 @@ static struct option my_options[] =
   {"verbose", 0, 0, O_VERBOSE},
   {"help", 0, 0, O_HELP},
   {"debug", 0, 0, O_DEBUG},
-  {"inmemory", 0, 0, O_INMEMORY},
   {"version", 0, 0, O_VERSION},
   {0, 0, 0, 0}
 };
@@ -93,7 +104,6 @@ if (mpi_ct.my_rank == 0)
   fprintf(stdout,"        rays      Trace rays\n");
   fprintf(stdout,"        plot      Trace plot\n");
   fprintf(stdout,"        clipping  Trace clipping\n");
-  fprintf(stdout,"     --inmemory   Use memory storage\n");
   fprintf(stdout,"     --verbose    Verbose mode\n");
   fprintf(stdout,"     --debug      Debug mode\n");
   fprintf(stdout,"     --version    Print version\n");
@@ -113,8 +123,8 @@ main (const int argc, char *const argv[])
 {
   DETECTOR *det;
   PICTURE *pic = NULL;
-  RAYSUM *rs_global;
-  char str[256], *opt_outfile, opt_desc[MAXREMARK+1];
+  RAYSUM *rs_global = NULL;
+  char str[256], *opt_outfile = NULL, opt_desc[MAXREMARK+1];
   char opt_picfilename[256];
   char *endptr, *endstr;
   int opt_ndet, opt_nview;
@@ -122,14 +132,13 @@ main (const int argc, char *const argv[])
   int opt_trace = 0, opt_picnum = -1;
   int opt_verbose = 0;
   int opt_debug = 0;
-  int opt_in_memory = FALSE;
   double opt_rotangle = 1;
-  double time_start, time_end;
+  double time_start = 0, time_end = 0;
 #ifdef MPI_CT
   RAYSUM *rs_local;
   int mpi_argc = argc;
   char **mpi_argv = (char **) argv;
-  double mpi_t1, mpi_t2, mpi_t, mpi_t_g;
+  double mpi_t1 = 0, mpi_t2 = 0, mpi_t, mpi_t_g;
 
   MPI_Init(&mpi_argc, &mpi_argv);
   MPI_Comm_dup (MPI_COMM_WORLD, &mpi_ct.comm);
@@ -141,9 +150,6 @@ main (const int argc, char *const argv[])
              mpi_ct.nproc, MPI_MAX_PROCESS);
     exit(1);
   }
-#endif
-
-#ifdef MPI_CT
   time_start = MPI_Wtime();
 #else
   time_start = td_current_sec();
@@ -182,8 +188,6 @@ main (const int argc, char *const argv[])
       case O_DEBUG:
        opt_debug = 1;
        break;
-      case O_INMEMORY:
-       opt_in_memory = 1;
        break;
       case O_TRACE:
        opt_trace = opt_set_trace(optarg, argv[0]);
@@ -291,10 +295,11 @@ main (const int argc, char *const argv[])
 #ifdef MPI_CT
   mpi_ct_calc_work_units(opt_nview);
   if (mpi_ct.my_rank == 0) {
-    rs_global = raysum_create_from_det (opt_outfile, det, TRUE);
+    rs_global = raysum_create_from_det (opt_outfile, det);
+    raysum_alloc_views(rs_global);
   }
   
-  rs_local = raysum_create_from_det (NULL, det, TRUE);
+  rs_local = raysum_create_from_det (NULL, det);
   rs_local->nview = mpi_ct.local_work_units[mpi_ct.my_rank];
   if (opt_debug)
     printf("rs_local->nview = %d (process %d)\n", rs_local->nview, mpi_ct.my_rank);
@@ -321,7 +326,7 @@ main (const int argc, char *const argv[])
       printf("Time to gather rs = %f secs, Max = %f secs\n", mpi_t, mpi_t_g);
   }
 #else
-  rs_global = raysum_create_from_det (opt_outfile, det, opt_in_memory);
+  rs_global = raysum_create_from_det (opt_outfile, det);
   raysum_collect (rs_global, det, pic, 0, opt_trace, FALSE);
 #endif
   
@@ -351,8 +356,7 @@ main (const int argc, char *const argv[])
     raysum_close (rs_global);
   }
 #else  
-  if (opt_in_memory)
-    raysum_write (rs_global);
+  raysum_write (rs_global);
   raysum_close (rs_global);
 #endif