added NODFB mode
[physik/nlsop.git] / nlsop.c
diff --git a/nlsop.c b/nlsop.c
index 81f408d..f2acfb4 100644 (file)
--- a/nlsop.c
+++ b/nlsop.c
@@ -369,7 +369,7 @@ int convert_file(char *cf,d3_lattice *d3_l)
 
 int main(int argc,char **argv)
 {
 
 int main(int argc,char **argv)
 {
- u32 max_x,max_y,max_z,x,y,z,x_c,y_c,z_c;
+ u32 x,y,z,x_c,y_c,z_c;
  int i,quit,escape,nowait;
  int refresh,resave;
  char s_file[MAX_CHARS];
  int i,quit,escape,nowait;
  int refresh,resave;
  char s_file[MAX_CHARS];
@@ -399,9 +399,9 @@ int main(int argc,char **argv)
  d3_lattice d3_l;
  info my_info;
 
  d3_lattice d3_l;
  info my_info;
 
- max_x=X;
- max_y=Y;
- max_z=Z;
d3_l.max_x=X;
d3_l.max_y=Y;
d3_l.max_z=Z;
  my_info.steps=STEPS;
  my_info.range=RANGE;
  refresh=REFRESH;
  my_info.steps=STEPS;
  my_info.range=RANGE;
  refresh=REFRESH;
@@ -442,13 +442,13 @@ int main(int argc,char **argv)
      my_info.b_el=atof(argv[++i]);
      break;
     case 'x':
      my_info.b_el=atof(argv[++i]);
      break;
     case 'x':
-     max_x=atoi(argv[++i]);
+     d3_l.max_x=atoi(argv[++i]);
      break;
     case 'y':
      break;
     case 'y':
-     max_y=atoi(argv[++i]);
+     d3_l.max_y=atoi(argv[++i]);
      break;
     case 'z':
      break;
     case 'z':
-     max_z=atoi(argv[++i]);
+     d3_l.max_z=atoi(argv[++i]);
      break;
     /*
     case 'X':
      break;
     /*
     case 'X':
@@ -514,19 +514,26 @@ int main(int argc,char **argv)
   } else usage();
  }
 
   } else usage();
  }
 
- x=max_x/2-1;
- y=max_y/2-1;
- z=max_z/2-1;
-
+ x=d3_l.max_x/2-1;
+ y=d3_l.max_y/2-1;
+ z=d3_l.max_z/2-1;
 
 
+#ifdef NODFB
+ if(!strcmp(s_file,"")
+ {
+  puts("NODFB defined, run with -S option");
+  return -1;
+ }
 
  if(!strcmp(r_file,"")) rand_init(NULL);
  else rand_init(r_file);
 
  if(!strcmp(l_file,""))
  {
 
  if(!strcmp(r_file,"")) rand_init(NULL);
  else rand_init(r_file);
 
  if(!strcmp(l_file,""))
  {
-  i=max_x*max_y*max_z;
-  d3_lattice_init(&argc,argv,&d3_l,max_x,max_y,max_z);
+  i=d3_l.max_x*d3_l.max_y*d3_l.max_z;
+#ifdef USE_DFB_API
+  d3_lattice_init(&argc,argv,&d3_l);
+#endif
   if((d3_l.status=(unsigned char *)malloc(i*sizeof(unsigned char)))==NULL)
   {
    puts("failed allocating status buffer");
   if((d3_l.status=(unsigned char *)malloc(i*sizeof(unsigned char)))==NULL)
   {
    puts("failed allocating status buffer");
@@ -549,10 +556,15 @@ int main(int argc,char **argv)
    convert_file(c_file,&d3_l);
    puts("done");
    return 1;
    convert_file(c_file,&d3_l);
    puts("done");
    return 1;
-  } else d3_lattice_init(&argc,argv,&d3_l,d3_l.max_x,d3_l.max_y,d3_l.max_z);
+  } 
+#ifdef USE_DFB_API
+    else d3_lattice_init(&argc,argv,&d3_l);
+#endif
  }
  }
+
+#ifedef USE_DFB_API
  d3_event_init(&d3_l);
  d3_event_init(&d3_l);
+#endif
 
  strcpy(a_txt,"args:");
  sprintf(s_txt,"steps: %d",my_info.steps);
 
  strcpy(a_txt,"args:");
  sprintf(s_txt,"steps: %d",my_info.steps);
@@ -608,7 +620,9 @@ int main(int argc,char **argv)
     sprintf(conc_txt,"conc: %d",*(d3_l.extra+x+y*d3_l.max_x+z*d3_l.max_x*d3_l.max_y));
     sprintf(steps_txt,"step: %d",i);
     sprintf(cc_txt,"total c: %d",my_info.cc);
     sprintf(conc_txt,"conc: %d",*(d3_l.extra+x+y*d3_l.max_x+z*d3_l.max_x*d3_l.max_y));
     sprintf(steps_txt,"step: %d",i);
     sprintf(cc_txt,"total c: %d",my_info.cc);
+#ifdef USE_DFB_API
     d3_lattice_draw(&d3_l,x,y,z,24,arg_v);
     d3_lattice_draw(&d3_l,x,y,z,24,arg_v);
+#endif
     // scan_event(&d3_l,&x,&y,&z,&quit,&escape);
    }
    if(i%resave==0 && strcmp(s_file,"") && resave!=0)
     // scan_event(&d3_l,&x,&y,&z,&quit,&escape);
    }
    if(i%resave==0 && strcmp(s_file,"") && resave!=0)
@@ -631,11 +645,15 @@ int main(int argc,char **argv)
   sprintf(conc_txt,"conc: %d",*(d3_l.extra+x+y*d3_l.max_x+z*d3_l.max_x*d3_l.max_y));
   strcpy(steps_txt,"step: end!");
   sprintf(cc_txt,"total c: %d",my_info.cc);
   sprintf(conc_txt,"conc: %d",*(d3_l.extra+x+y*d3_l.max_x+z*d3_l.max_x*d3_l.max_y));
   strcpy(steps_txt,"step: end!");
   sprintf(cc_txt,"total c: %d",my_info.cc);
+#ifdef USE_DFB_API
   d3_lattice_draw(&d3_l,x,y,z,24,arg_v);
   scan_event(&d3_l,&x,&y,&z,&quit,&escape);
   d3_lattice_draw(&d3_l,x,y,z,24,arg_v);
   scan_event(&d3_l,&x,&y,&z,&quit,&escape);
+#endif
  }
 
  }
 
+#ifdef USE_DFB_API
  d3_lattice_release(&d3_l);
  d3_lattice_release(&d3_l);
+#endif
 
  return 1;
 }
 
  return 1;
 }