int main(int argc,char *argv[]) { int drec=2,dnum; struct RadarParm prm; struct FitData fit; struct OldFitFp *fp; fp=OldFitOpen(argv[1],NULL); if (fp==NULL) { fprintf(stderr,"File not found.\n"); exit(-1); } OldFitHeaderFwrite(stdout,"Demonstration Code","fitacf","4.00"); while(OldFitRead(fp,&prm,&fit) !=-1) { fprintf(stderr,"%.4d-%.2d-%.2d %.2d:%.2d:%.2d\n", prm.time.yr,prm.time.mo,prm.time.dy, prm.time.hr,prm.time.mt,prm.time.sc); prm.cp=1000; dnum=OldFitFwrite(stdout,&prm,&fit,NULL); drec+=dnum; } OldFitClose(fp); return 0; }
int32 OldFitIDLWrite(int argc,char *argv[]) { int n; struct RadarIDLParm *idlprm; struct FitIDLData *idlfit; struct RadarParm prm; struct FitData fit; IDL_FILE_STAT stat; FILE *fp; int unit; int s; unit = *( (int32 *) argv[0]); if (unit !=-1) { /* a real file */ /* Make sure that the "STDIO" keyword was used to * open the file in IDL. */ s=IDL_FileEnsureStatus(IDL_MSG_RET,unit,IDL_EFS_STDIO); if (s==FALSE) return -1; /* Get information about the file */ IDL_FileStat(unit,&stat); /* Find the file pointer */ fp=stat.fptr; if (fp==NULL) return -1; fflush(fp); } else fp=NULL; /* dummy routine */ /* get the structure pointers */ idlprm=(struct RadarIDLParm *) argv[1]; idlfit=(struct FitIDLData *) argv[2]; memset(&prm,0,sizeof(struct RadarParm)); memset(&fit,0,sizeof(struct FitData)); /* load up the data structures */ prm.revision.major=idlprm->revision.major; prm.revision.minor=idlprm->revision.minor; prm.cp=idlprm->cp; prm.stid=idlprm->stid; prm.time.yr=idlprm->time.yr; prm.time.mo=idlprm->time.mo; prm.time.dy=idlprm->time.dy; prm.time.hr=idlprm->time.hr; prm.time.mt=idlprm->time.mt; prm.time.sc=idlprm->time.sc; prm.time.us=idlprm->time.us; prm.txpow=idlprm->txpow; prm.nave=idlprm->nave; prm.atten=idlprm->atten; prm.lagfr=idlprm->lagfr; prm.smsep=idlprm->smsep; prm.ercod=idlprm->ercod; prm.stat.agc=idlprm->stat.agc; prm.stat.lopwr=idlprm->stat.lopwr; prm.noise.search=idlprm->noise.search; prm.noise.mean=idlprm->noise.mean; prm.channel=idlprm->channel; prm.bmnum=idlprm->bmnum; prm.scan=idlprm->scan; prm.rxrise=idlprm->rxrise; prm.intt.sc=idlprm->intt.sc; prm.intt.us=idlprm->intt.us; prm.txpl=idlprm->txpl; prm.mpinc=idlprm->mpinc; prm.mppul=idlprm->mppul; prm.mplgs=idlprm->mplgs; prm.nrang=idlprm->nrang; prm.frang=idlprm->frang; prm.rsep=idlprm->rsep; prm.xcf=idlprm->xcf; prm.tfreq=idlprm->tfreq; prm.offset=idlprm->offset; prm.mxpwr=idlprm->mxpwr; prm.lvmax=idlprm->lvmax; for (n=0;n<prm.mppul;n++) prm.pulse[n]=idlprm->pulse[n]; for (n=0;n<prm.mplgs;n++) { prm.lag[n][0]=idlprm->lag[n]; prm.lag[n][1]=idlprm->lag[LAG_SIZE+n]; } if (strlen(IDL_STRING_STR(&idlprm->combf)) !=0) strncpy(prm.combf,IDL_STRING_STR(&idlprm->combf),COMBF_SIZE); fit.revision.major=idlfit->revision.major; fit.revision.minor=idlfit->revision.minor; fit.noise.skynoise=idlfit->noise.sky; fit.noise.lag0=idlfit->noise.lag0; fit.noise.vel=idlfit->noise.vel; for (n=0;n<prm.nrang;n++) { fit.rng[n].p_0=idlfit->pwr0[n]; fit.rng[n].nump=idlfit->nlag[n]; fit.rng[n].qflg=idlfit->qflg[n]; fit.rng[n].gsct=idlfit->gflg[n]; fit.rng[n].p_l=idlfit->p_l[n]; fit.rng[n].p_l_err=idlfit->p_l_e[n]; fit.rng[n].p_s=idlfit->p_s[n]; fit.rng[n].p_s_err=idlfit->p_s_e[n]; fit.rng[n].v=idlfit->v[n]; fit.rng[n].v_err=idlfit->v_e[n]; fit.rng[n].w_l=idlfit->w_l[n]; fit.rng[n].w_l_err=idlfit->w_l_e[n]; fit.rng[n].w_s=idlfit->w_s[n]; fit.rng[n].w_s_err=idlfit->w_s_e[n]; fit.rng[n].sdev_l=idlfit->sd_l[n]; fit.rng[n].sdev_s=idlfit->sd_s[n]; fit.rng[n].sdev_phi=idlfit->sd_phi[n]; if (prm.xcf !=0) { fit.elv[n].low=idlfit->elv_low[n]; fit.elv[n].normal=idlfit->elv[n]; fit.elv[n].high=idlfit->elv_high[n]; fit.xrng[n].qflg=idlfit->x_qflg[n]; fit.xrng[n].gsct=idlfit->x_gflg[n]; fit.xrng[n].p_l=idlfit->x_p_l[n]; fit.xrng[n].p_l_err=idlfit->x_p_l_e[n]; fit.xrng[n].p_s=idlfit->x_p_s[n]; fit.xrng[n].p_s_err=idlfit->x_p_s_e[n]; fit.xrng[n].v=idlfit->x_v[n]; fit.xrng[n].v_err=idlfit->x_v_e[n]; fit.xrng[n].w_l=idlfit->x_w_l[n]; fit.xrng[n].w_l_err=idlfit->x_w_l_e[n]; fit.xrng[n].w_s=idlfit->x_w_s[n]; fit.xrng[n].w_s_err=idlfit->x_w_s_e[n]; fit.xrng[n].sdev_l=idlfit->x_sd_l[n]; fit.xrng[n].sdev_s=idlfit->x_sd_s[n]; fit.xrng[n].sdev_phi=idlfit->x_sd_phi[n]; fit.xrng[n].phi0=idlfit->phi0[n]; fit.xrng[n].phi0_err=idlfit->phi0_e[n]; } } s=OldFitFwrite(fp,&prm,&fit,NULL); return s; }