/*************************************************************************** Name: mgdrlite_toIntel.c Function: Read unformatted Quickscat wind-lite binary data in "Big Endian" format and convert it to Intel based "Little Endian" binary file Input : unformatted wind data in SUN binary "Big Endian" file Output: unformatted wind data in INTEL binary "Little Endian" file: ddd hh mm lattitude longitude windspeed winddir qual_flag rainflag blank1 blank2 blank3 USAGE: mgdrlite_toIntel input_file outputfile NOTE: @author Zihou Wang and Jeffrey Augenbaum version 1.0 07/25/2002 ******************************************************************************/ #include #include #include #include void swapSample(short int *samp); #define len 76 main(int argc, char *argv[]) { char *prog; static char usage[] = "Usage : %s inputMGDRFile outputWindFile\n"; FILE *fin, *fout; char fout_name[80]; char fin_name[80]; int f, head_flag,totrecs,reclen; int nrec, i; short int latarr[len],blanks[len], time_arr[4],wind[len]; unsigned short int lonarr[len],dir[len],qual_flag[len]; short int rainflag_mudh[len]; /* check arguments */ if (argc != 3) { printf(usage,argv[0]); exit(1); } /* get output file name, */ strcpy(fout_name,argv[2]); fout=fopen(fout_name,"w"); /* open unformatted wind data file */ strcpy(fin_name,argv[1]); fin = fopen(fin_name,"r"); if (fin == NULL){ printf("read %s failed\n",fin_name); exit(1); } /* printf("read %s ok\n",fin_name); */ /* printf("DDD HH MM %6s%6s%6s%6s%6s%6s%6s%6s%6s\n","lat","Long", "speed","dir", "qual","rain","blank","blank","blank"); */ /* read records in the input file */ nrec = 0; while( fread(time_arr,sizeof(short int),4,fin)) { nrec++; swapSample(&time_arr[0]); swapSample(&time_arr[1]); swapSample(&time_arr[2]); swapSample(&time_arr[3]); /* Write out new time array for single record */ f=fwrite(time_arr,sizeof(short int),4,fout); /* printf("%3d %2d %2d\n", time_arr[0],time_arr[1], time_arr[2]); */ /* Read in lat, lon, wind, dir, selection index */ fread(latarr,sizeof(short int),len,fin); fread(lonarr,sizeof(unsigned short int),len,fin); fread(qual_flag,sizeof(unsigned short int),len,fin); fread(wind,sizeof(short int),len,fin); fread(dir,sizeof(unsigned short int),len,fin); fread(rainflag_mudh,sizeof(short int),len,fin); fread(blanks,sizeof(short int),len,fin); fread(blanks,sizeof(short int),len,fin); fread(blanks,sizeof(short int),len,fin); for(i=0; i