#include <stdio.h>
#define n 9999
FILE *fp;
char a[160],b[160];
main(ac,av)
int ac; char *av[];
{
  int i,j,jj,k;
  float x,y,z,v;
  char f1[60],f2[60],f3[60],f4[60];
  float xx[n],yy[n],vv[n],zz[n];
  int   cn[n];
  float v1,v2,v3,v4,v5;
  float r,rr,r3;
    
  if(ac<2){
    printf("dispsfber uedo [1~5,6-9] [1]\n\n");
    exit(0);
  }
  if(ac>2) sscanf(av[2],"%d",&jj);
  r3=1.; if(ac>3)sscanf(av[3],"%f",&r3);
  strcpy(f1,av[1]);
  k=nindex(f1,"."); if(k>0)f1[k]=0;
  strcpy(f2,f1); strcpy(f3,f1); strcpy(f4,f1);
// *.als
  strcat(f3,".als");
  fp=fopen(f3,"r"); if(fp==0){ printf("%s not found!\n",f3); exit(0); }
  fgets(a,160,fp); fgets(a,160,fp); fgets(a,160,fp);
  k=0;
l10:
  fgets(a,160,fp); if(feof(fp))goto l20;
  sscanf(a,"%d %f %f %f %f %f %f %f %f",&j,&y,&x,&r,&z,&z,&z,&z,&v);
  if(v>-10 && v<r3){           // use star only
    cn[k]=j; xx[k]=x; yy[k]=y; vv[k]=r;
    k++;
  }
  goto l10; 
l20:
  fclose(fp);

  fp=fopen("test.cat","r");
l30:
  fgets(a,160,fp); if(feof(fp))goto l40;
  if(a[0]=='#')goto l30;
  sscanf(a,"%d %f %f %f %f %f %f %f %f",&j,&v1,&v2,&v3,&v4,&v5,&r,&y,&x);
  for(i=0;i<k;i++) if(cn[i]==j)goto l35;
  goto l30;
l35:
  if(jj==1) zz[i]=v1;
  if(jj==2) zz[i]=v2;
  if(jj==3) zz[i]=v3;
  if(jj==4) zz[i]=v4;
  if(jj==5) zz[i]=v5;
  z=vv[i]-zz[i];
  if(z>0.9)printf("%4d %8.3f %8.3f %5.1f\n",j,yy[i],xx[i],z);
  goto l30;
l40:
  fclose(fp);

  strcat(f1,".ap");
  fp=fopen(f1,"r");
  for(i=0;i<3;i++)fgets(a,160,fp);
l50:
  fgets(a,160,fp); if(feof(fp))goto l60;
  fgets(a,160,fp); fgets(b,160,fp);
  sscanf(a,"%d %f %f %f %f %f %f",&j,&y,&x,&v1,&v2,&v3,&v4);
  for(i=0;i<k;i++) if(cn[i]==j)goto l55;
  goto l50;
l55:
  if(jj==6) zz[i]=v1;
  if(jj==7) zz[i]=v2;
  if(jj==8) zz[i]=v3;
  if(jj==9) zz[i]=v4;
  goto l50;
l60:
  fclose(fp);

  printf("match: %d\n",k);   
  i=1;  
  pgbegin_(&i,"/xw",&i,&i,3L);
  x=6.;  y=1.;
  pgpap_(&x,&y);
  x=8.; y=20.;
  pgenv_(&x,&y,&x,&y,&i,&i);
  pgpoint_(&k,vv,zz,&i);
  xx[0]=yy[0]=8.; xx[1]=yy[1]=20.; j=2;
  pgline_(&j,xx,yy,&i);
  fp=fopen("default.sex","r");
  for(i=0;i<36;i++)fgets(a,160,fp); fclose(fp);
  x=10.; y=19.; a[15]=32;      // read autoparam 1.8,30
  if(jj==4 ||j==5)pgtext_(&x,&y,a,23L);
  x=10.; y=18.; sprintf(a,"Sharpness: <%4.1f   Matched: %d",r3,k);
  i=strlen(a);
  pgtext_(&x,&y,a,i);
  if(jj==1)strcpy(a,"Bertin MAG_ISO");
  if(jj==2)strcpy(a,"Bertin MAG_ISOCOR");
  if(jj==3)strcpy(a,"Bertin MAG_APER(1)");
  if(jj==4)strcpy(a,"Bertin MAG_AUTO");
  if(jj==5)strcpy(a,"Bertin MAG_BEST");
  if(jj==6)strcpy(a,"Dao_Mag Aper=10");
  if(jj==7)strcpy(a,"Dao_Mag Aper=11");
  if(jj==8)strcpy(a,"Dao_Mag Aper=12");
  if(jj==9)strcpy(a,"Dao_Mag Aper=13");
  i=strlen(a);
  pglabel_("DAO Mag_psf",a,"edo_a1413.0053.fits",11,i,19);
  pgend_();
}
