Sample lines of C to read in and convert raw binary data:

unsigned short int *prec;
short int *array1, *array2, *array3;

for (x=0;x<lines/4;x++) {
if(fread(&prec[x],sizeof(unsigned short int),1,fp) != 1)
   printf("read prec[x] err rec %d %s\n", x,file);
if(fread(&array1[x],sizeof(short int),1,fp) != 1)
  printf("read array1[x] err rec %d %s\n", x,file);
if(fread(&array2[x],sizeof(short int),1,fp) != 1)
  printf("read array2[x] err rec %d %s\n", x,file);
if(fread(&array3[x],sizeof(short int),1,fp) != 1)
  printf("read array3[x] err rec %d %s\n", x,file);

prcp = (float) (prec[x])/40.0;
tmax = (float) (array1[x])/100.0;
tmin = (float) (array2[x])/100.0;
wind = (float) (array3[x])/100.0;
}