#include #include #include int main(int argc,char **argv) { int i,j,k; int hr,mi,se,ms1,ms2; static float pwr1[700],v1; // RH static float pwr2[700],v2; // LH static float dum[700]; FILE *fp; static char buf[256]; int c0,c1,c2,c3; double f; //int outf; int year,mon,day; year=(argv[1][0]-'0')*1000+(argv[1][1]-'0')*100+ (argv[1][2]-'0')*10+(argv[1][3]-'0'); mon=(argv[1][4]-'0')*10+(argv[1][5]-'0'); day=(argv[1][6]-'0')*10+(argv[1][7]-'0'); for (i=0;i<700;i++) dum[i]=-999; ms1=ms2=0; for (i=0;i<144;i++) { sprintf(buf,"/pub/j/data/10min-i/v1/%s/%s%02d%02d00.10min", argv[1],argv[1],i/6,(i%6)*10); if (NULL==(fp=fopen(buf,"r"))) { hr=i/6; mi=(i%6)*10; se=0; fputc(hr,stdout); fputc(mi,stdout); fputc(se,stdout); fputc(ms1,stdout); fputc(ms2,stdout); fwrite(dum,sizeof(float),700,stdout); fwrite(dum,sizeof(float),700,stdout); } else { for (j=0;j<600;j++) { hr=i/6; mi=(i%6)*10+j/60; se=j%60; for (k=0;k<700;k++) { f=15.0+(40.0-15.0)/699.0*k; c0=fgetc(fp);c1=fgetc(fp); c2=fgetc(fp);c3=fgetc(fp); if (year*100+mon<201305) { pwr2[k]=(c0+256*c1)/47.0+20*log10(f)-252.6+260; // AD -> dBJy pwr1[k]=(c2+256*c3)/47.0+20*log10(f)-252.6+260; // AD -> dBJy } else { pwr2[k]=(c0+256*c1)/51.23+20*log10(f)-242.5+260; // AD -> dBJy pwr1[k]=(c2+256*c3)/51.23+20*log10(f)-242.5+260; // AD -> dBJy } } for (k=0;k<700;k++) { f=15.0+(40.0-15.0)/699.0*k; c0=fgetc(fp);c1=fgetc(fp); c2=fgetc(fp);c3=fgetc(fp); if (year*100+mon<201305) { v2=(c0+256*c1)/47.0+20*log10(f)-252.6+260; // AD -> dBJy v1=(c2+256*c3)/47.0+20*log10(f)-252.6+260; // AD -> dBJy } else { v2=(c0+256*c1)/51.23+20*log10(f)-242.5+260; // AD -> dBJy v1=(c2+256*c3)/51.23+20*log10(f)-242.5+260; // AD -> dBJy } if (pwr1[k]