/* Dispatch routine for caltools */

#include <stdio.h>

int MAIN_; /* work around SunOS 4.1.3 bug */

main (argc,argv)
int argc;
char **argv;
{

  char *start;
  char *tstr;

  /* find the last / character */

  start = argv[0];
  tstr = start;

  while (*tstr) {
    if (*tstr == '/') {
      start = tstr;
      start++;
    }
    tstr++;
  }

  OpenDefaultPF(argc, argv);

  if (!strcmp(start,"addarf")) {
    addarf_();
  } else if (!strcmp(start,"addrmf")) {
    addrmf_();
  } else if (!strcmp(start,"brcaldb")) {
    brcalb();
  } else if (!strcmp(start,"c_caldbflag")) {
    c_calg();
  } else if (!strcmp(start,"c_caldbinfo")) {
    c_calo();
  } else if (!strcmp(start,"c_crtcif")) {
    c_crtf();
  } else if (!strcmp(start,"calcrpsf")) {
    calcrf_();
  } else if (!strcmp(start,"caldbflag")) {
    caldbg_();
  } else if (!strcmp(start,"caldbinfo")) {
    caldbo_();
  } else if (!strcmp(start,"chkcif")) {
    chkcif_();
  } else if (!strcmp(start,"cifcadd")) {
    cifcad_();
  } else if (!strcmp(start,"cmppha")) {
    cmppha_();
  } else if (!strcmp(start,"col2img")) {
    col2ig_();
  } else if (!strcmp(start,"crcif")) {
    crcif_();
  } else if (!strcmp(start,"dmprmf")) {
    dmprmf_();
  } else if (!strcmp(start,"gcorpha")) {
    gcorpa_();
  } else if (!strcmp(start,"gcorrmf")) {
    gcorrf_();
  } else if (!strcmp(start,"genrsp")) {
    genrsp_();
  } else if (!strcmp(start,"lstgood")) {
    lstgod_();
  } else if (!strcmp(start,"marfrmf")) {
    marfrf_();
  } else if (!strcmp(start,"mkcaldb")) {
    mkcalb_();
  } else if (!strcmp(start,"mkcaldir")) {
    mkcalr_();
  } else if (!strcmp(start,"mkcalinit")) {
    mkcalt_();
  } else if (!strcmp(start,"mudcif")) {
    mudcif_();
  } else if (!strcmp(start,"quzcif")) {
    quzcif_();
  } else if (!strcmp(start,"rbnrmf")) {
    rbnrmf_();
  } else if (!strcmp(start,"rbnrpsf")) {
    rbnrpf_();
  } else if (!strcmp(start,"rpsf2eef")) {
    rpsf2f_();
  } else if (!strcmp(start,"rpsfqdp")) {
    rpsfqp_();
  } else if (!strcmp(start,"rsp2rmf")) {
    rsp2rf_();
  } else if (!strcmp(start,"st2rpsf")) {
    st2rpf_();
  } else if (!strcmp(start,"stcal")) {
    stcal_();
  } else if (!strcmp(start,"stw2pha")) {
    stw2pa_();
  } else if (!strcmp(start,"udcif")) {
    udcif_();
  } else {
    fprintf (stderr,"caltools_dispatch can't run %s from %s\n",start,argv[0]);
    return 1;
  }
 
  CloseDefaultPF();
  return 0;
}
