/************************************************************ Name: read.c Function: Read unformatted quickscat wind and print out using format Input : unformatted wind data Output: formatted wind product: ddd hh mm lattitude longitude windspeed winddir qual_flag rainflag blank1 blank2 blank3 USAGE: a.out input_file > outputfile NOTE: The output values of lat, lon, and dir must all be multiplied by 0.01 to get units of degrees. The output value of spd (wind speed) must be multiplied by 0.01 to get units of m/s. The "blanks" variable is for future use @author Zihou Wang version 1.0 05/02/2000 *************************************************************/ #include #include #include #include #define len 76 main(int argc, char *argv[]) { char *prog; static char usage[] = "Usage : %s inputWindFile > outputWindFile\n"; FILE *fin; char fin_name[80]; 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 != 2) { printf(usage,argv[0]); exit(1); } /* 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++; /* printf("%3d %2d %2d", time_arr[0],time_arr[1], time_arr[2]); */ 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