#include <stdio.h>
#define nbrowte 4160*4096*4
char head[72][80];
char a[nbrowte];
char f1[30],f2[30];
FILE *fp;	
int ibit,n1,n2,ipos;
float scale;
double x;
main(ac,av)
int ac; char *av[];                        
{
  int i,k;			
  if(ac<4){
    printf("\tUsage:  md in_file outfile scale\n");
    printf("\t        scale: 0.1 or 10\n");
    exit(0);
  }  
  sscanf(&av[3][0],"%f",&scale);  
  fp=fopen(av[1],"rb"); if(fp==0){ printf("\n\tinfile not found!\n"); exit(0); }
  fread(head,80,72,fp);
  ipos=indexpos(head,"BITPIX  ",72);
  if(ipos==72){ printf("\n\tinfile not a fits file!\n"); exit(0); }
  sscanf(&head[ipos][23],"%d",&ibit);	  
  ipos=indexpos(head,"NAXIS1  ",72);
  sscanf(&head[ipos][23],"%d",&n1);	  
  sscanf(&head[ipos+1][23],"%d",&n2);	  
  if(ibit<0)ibit=-ibit; ibit/=8;
  printf("Size: %d %d %d\n",ibit,n1,n2);
  k=n1*n2;
  fread(a,k,ibit,fp); fclose(fp);
  if(ibit==2)ch2(a,a,k,scale);
        else ch4(a,a,k,scale);
  fp=fopen(av[2],"wb");
  fwrite(head,80,72,fp);
  fwrite(a,k,ibit,fp);
  fclose(fp);
  printf("\nok!\n");
}

ch4(a,b,n,scale)
int n;	
float a[n],*b,scale;
{
  int i;
  swap4(a,n*4);
  for(i=0;i<n;i++)*b++=a[i]*scale;
  swap4(a,n*4);
}  

ch2(a,b,n,scale)
int n;	
short a[n],*b;
float scale;
{
  int i;
  swap2(a,n*4);
  for(i=0;i<n;i++)*b++=a[i]*scale;
  swap2(a,n*4);
}  
