#include <stdio.h>
FILE *fp,*fp1;
char head[72][80];
char f1[30],f2[30],c[80];
float gain,seei;
main(int ac,char **av)
{
  int k;
  float x1,x2,x3,x4;
  if(ac<2){
  printf("\n\t\t ******** 3key *********\n");
  printf("\n\t  pipeline2: workout p*.cat\n");
  printf("\n\t Usage: 3key filename          101009\n\n");
  printf(" 1. automatic processing pipeline2 job, not answer any question.\n"); 
  printf(" 2. copy *.par, default.* to default_directory, put GAIN SEEING.\n");
  printf(" 3. batch job:\n");
  printf("\tsex       uedo.fit ! produce test.cat\n");
  printf("\tchbercoo  uedo     ! produce uedo.coo, delete edge 10 line  \n");
  printf("\tpip231    uedo   *                                          \n");
  printf("\tcoo2als   uedo   * ! putcoo uedo coo2als.dat, will delete it\n");
  printf("\tcheckmis  uedo   * ! produce miss.dat, all missed are cosmos\n");
  printf("\tgetcosmos uedo   * ! from uedo.als <-10, produce cosmos.dat,\n");
  printf("\t                   ! reorder uedo.coo, count in coo2als.dat \n");
  printf("\tpip231  uedo                                                \n");
  printf("\textrcat uedo       ! extr from test.cat & uedo.als->uedo.ext\n");
  printf("\tlastcat uedo [1.0] ! [1.0] is sharpness\n");
  printf("\t#putcoo uedo cosmos.dat   ! produce uedocosmos.fit\n");
  printf("\t#putcoo uedo uedo.als     ! produce uedoals.fit   \n");
  printf("\t#ds9 uedocosmos.fit       \n");
  printf("\t#ds9 uedoals.fit uedo.fits\n");
  printf("\t#dispsfber uedo 5       \n\n");
  printf("\t\t*==redo, #==you can do after\n\n");
  exit(0);
  }
  strcpy(f1,av[1]);
  k=nindex(f1,"."); if(k>0)f1[k]=0;         // f1=p*
  strcpy(f2,f1); strcat(f2,".fit");         // f2=p*.fit
  fp=fopen(f2,"rb"); if(fp==0){ printf("\tfile not found: %s\n",f2); exit(0); }
  fread(head,72,80,fp); fclose(fp);
  k=indexpos(head,"SEEING  ",72); 
  if(k==72){ printf("\tI cannot find seeing in file: %s\n",f2); exit(0); }
  sscanf(&head[k][15],"%f",&seei);
  k=indexpos(head,"GAINCAL ",72); 
  sscanf(&head[k][10],"%f %f %f %f",&x1,&x2,&x3,&x4);
  gain=(x1+x2+x3+x4)/4.;
//  printf("%f %f\n",seei,gain);
  job2();
  sprintf(c,"sex       %s",f2); system(c);
  sprintf(c,"chbercoo  %s",f1); system(c);
  sprintf(c,"pip231    %s",f1); system(c);
  sprintf(c,"coo2als   %s",f1); system(c);
  sprintf(c,"checkmis  %s",f1); system(c);
  sprintf(c,"getcosmos %s",f1); system(c);
  sprintf(c,"pip231    %s",f1); system(c);
  sprintf(c,"extrcat   %s",f1); system(c);
  sprintf(c,"lastcat   %s",f1); system(c);
  printf("\n\t****** OK ! ********\n");
}

job2()
{
  system("cp /vega2/rhbin/bok.par .");
  system("cp /vega2/rhbin/headcat.par .");
  system("cp /vega2/rhbin/sort.par .");
  system("cp /vega2/rhbin/uefault.param default.param");
  system("cp /vega2/rhbin/uefault.conv default.conv");
  system("cp /vega2/rhbin/uefault.nnw default.nnw");
  fp =fopen("/vega2/rhbin/uefault.sex","r");
  fp1=fopen("default.sex","w");
l10:
  fgets(c,80,fp); if(feof(fp))goto l20;
  if(c[0]=='G'&&c[1]=='A'&&c[2]=='I'){sprintf(&c[6],"%4.1f",gain);c[10]=9;}
  if(c[0]=='S'&&c[1]=='E'&&c[2]=='E'){sprintf(&c[12],"%5.2f",seei);c[17]=9;}
  fputs(c,fp1); goto l10;
l20:
  fclose(fp1);
}
