/* A loop program, and it loops on a program called comb.  */
#include <stdio.h>

 FILE *fdat;

main() {
  int qcasea[20], qcase, pcasea[20], pcase,
      intv, leva[20], lev, pi,i,j,k,l,ii,jj,choice;
  float intva[20], pia[20][8];

  system("more .clr");
  printf("\n\n\nSelect:\n\n");
  printf("  Standard run:         0\n");
  printf("  Constrain J to 1:     1\n");
  printf("  Adjust Memory Bounds: 2\n");
  printf("  Check memory size:    3\n\n");
  printf("  Choice:");
  scanf("%d",&choice);

  printf("How many values of the P matrix?");
    scanf("%d",&pcase);
  if (pcase)
    printf("\nEnter each one individually\n");
  for(i=0;i<pcase;i++)
    scanf("%d",&pcasea[i]);


  printf("\nHow many values of the Q matrix?");
    scanf("%d",&qcase);
  if(qcase)
    printf("\nEnter each one individually\n");
  for(i=0;i<qcase;i++)
    scanf("%d",&qcasea[i]);


  printf("\nHow many values of the interval?");
    scanf("%d",&intv);
  if(intv)
    printf("\nEnter each one individually\n");
  for(i=0;i<intv;i++)
    scanf("%f",&intva[i]);


  printf("\nHow many different levels?");
    scanf("%d",&lev);
  if(lev)
    printf("\nEnter each one individually\n");
  for(i=0;i<lev;i++)
    scanf("%d",&leva[i]);


  printf("\nHow many values of Pi?");
    scanf("%d",&pi);
  if(pi)
    printf("\nEnter each element individually\n");
  for(i=0;i<pi;i++) {
    printf("Case %d\n",i+1);
    for(j=0;j<8;j++) {
      printf("pi[%d]=",j);
      scanf("%f",&pia[i][j]);
    }
  }
  fopen("/mit/smmadana/output.dat","w");
  fclose("/mit/smmadana/output.dat");
  for(i=0;i<pcase;i++)
    for(j=0;j<qcase;j++)
      for(k=0;k<intv;k++)
        for(l=0;l<lev;l++)
          for(ii=0;ii<pi;ii++) {
            fdat=fopen("/mit/smmadana/input.dat","w");
            fprintf(fdat,"%d",choice);
            fprintf(fdat,"%d \n%d \n%d \n%d \n",pcasea[i],qcasea[j],0,leva[l]);
            fprintf(fdat,"\n%f ",intva[k]);
            for(jj=0;jj<8;jj++)
              fprintf(fdat,"\n%f ",pia[ii][jj]);
            fclose(fdat);
            system("more .clr");
            printf("p=%d, q=%d, levels=%d, interval=%.3f\n\n",pcasea[i],
              qcasea[j],leva[l],intva[k]);
            system("comb < input.dat");
            system("mv output.dat temp.dat");
            system("cat temp.dat graph.fact > output.dat");
          }
  unlink("/mit/smmadana/temp.dat");
  unlink("/mit/smmadana/input.dat");
}  
