func Begin() { TotalTraces=1; i = 1; currenttrace=346; lasttrace=346; plusone=347; maxgi=1; nomove=1; lastsample=600; lessone=599; valueadd=4200; i = 1; k = 0; TotalTraces = 1; reasting = fVector(28000,0); rnorthing = fVector(28000,0); relev = fVector(28000,0); fmoon=fopen("output.test", "a"); fstar=fopen("james3d.source", "r"); tokens = getTokenLine(fstar); fprint (fmoon," reading james3d.source ","\n"); for(i=1; i<1504; i++) { source[i] = strtonum(tokens[2]); digital[i] = strtonum(tokens[1]); easting[i] = strtonum(tokens[3]); northing[i] = strtonum(tokens[4]); elev[i] = strtonum(tokens[5]); tokens = getTokenLine(fstar); } fclose(fstar); fprint (fmoon," reading james3d.receiver ","\n"); fstar=fopen("james3d.receiver", "r"); tokens = getTokenLine(fstar); for(i=1; i<1473; i++) { station[i] = strtonum(tokens[1]); reasting[station[i]] = strtonum(tokens[2]); rnorthing[station[i]] = strtonum(tokens[3]); relev[station[i]] = strtonum(tokens[4]); tokens = getTokenLine(fstar); } fclose(fstar); fprint (fmoon," reading james3d.pattern ","\n"); fstar=fopen("james3d.pattern", "r"); tokens = getTokenLine(fstar); for(i=1; i<49; i++) { rpattern[i] = strtonum(tokens[0]); fprint (fmoon,i," pattern = ",rpattern[i],"\n"); row1[rpattern[i]] = strtonum(tokens[1]); row2[rpattern[i]] = strtonum(tokens[2]); row3[rpattern[i]] = strtonum(tokens[3]); row4[rpattern[i]] = strtonum(tokens[4]); row5[rpattern[i]] = strtonum(tokens[5]); row6[rpattern[i]] = strtonum(tokens[6]); row7[rpattern[i]] = strtonum(tokens[7]); row8[rpattern[i]] = strtonum(tokens[8]); tokens = getTokenLine(fstar); } fclose(fstar); fstar=fopen("james3d.geometry", "r"); tokens = getTokenLine(fstar); fprint (fmoon," reading james3d.geometry ","\n"); for(i=1; i<1504; i++) { firststa[i] = strtonum(tokens[5]); pattern[i] = strtonum(tokens[6]); tokens = getTokenLine(fstar); } fclose(fstar); fclose(fmoon); } func OnLineHeader() { LH.NumTrc=240; LH.NumRec=1503; LH.NumSmp=375; LH.SmpInt=8; LH.OACL01=" "; LH.OACL02="C"; LH.OACL03="B"; LH.OACL04="F"; LH.OACL05="G"; LH.OACL06="-"; LH.OACL07="3"; LH.OACL08="D"; output(LH); } func OnTrace() { fstar=fopen("addlast", "a"); if(Tr.FlReFN != maxgi) { maxgi=Tr.FlReFN; fprint (fstar,"Record ",Tr.RecInd," has max of ",maxgi, "\n"); fmoon=fopen("output.test", "a"); fprint (fmoon," doing record = ",k," digital field number = ",Tr.FlReFN,"\n"); k++; for( i =1; i<1504; i++ ) { if(Tr.FlReFN == digital[i] ) { fprint (fmoon," found record at ",i," ","\n"); for( j=0; j<240; j++ ) { Tr.RecNum=k; Tr.TrcNum=j+1; Tr.SoPtNm=source[i]; Tr.SrPtXC=easting[i]; Tr.SrPtYC=northing[i]; Tr.SrPtEl=elev[i]; if ( j < 30) { Tr.RecInd=row1[rpattern[pattern[i]]]+j; Tr.RcPtXC=reasting[Tr.RecInd]; Tr.RcPtYC=rnorthing[Tr.RecInd]; Tr.GrpElv=relev[Tr.RecInd]; if (Tr.RcPtXC == 0) { Tr.StaCor=30000; } output(Tr); } if ( j > 29 && j < 60) { Tr.RecInd=row2[rpattern[pattern[i]]]+j-30; Tr.RcPtXC=reasting[Tr.RecInd]; Tr.RcPtYC=rnorthing[Tr.RecInd]; Tr.GrpElv=relev[Tr.RecInd]; if (Tr.RcPtXC == 0) { Tr.StaCor=30000; } output(Tr); } if ( j > 59 && j < 90) { Tr.RecInd=row3[rpattern[pattern[i]]]+j-60; Tr.RcPtXC=reasting[Tr.RecInd]; Tr.RcPtYC=rnorthing[Tr.RecInd]; Tr.GrpElv=relev[Tr.RecInd]; if (Tr.RcPtXC == 0) { Tr.StaCor=30000; } output(Tr); } if ( j > 89 && j < 120) { Tr.RecInd=row4[rpattern[pattern[i]]]+j-90; Tr.RcPtXC=reasting[Tr.RecInd]; Tr.RcPtYC=rnorthing[Tr.RecInd]; Tr.GrpElv=relev[Tr.RecInd]; if (Tr.RcPtXC == 0) { Tr.StaCor=30000; } output(Tr); } if ( j > 119 && j < 150) { Tr.RecInd=row5[rpattern[pattern[i]]]+j-120; Tr.RcPtXC=reasting[Tr.RecInd]; Tr.RcPtYC=rnorthing[Tr.RecInd]; Tr.GrpElv=relev[Tr.RecInd]; if (Tr.RcPtXC == 0) { Tr.StaCor=30000; } output(Tr); } if ( j > 149 && j < 180) { Tr.RecInd=row6[rpattern[pattern[i]]]+j-150; Tr.RcPtXC=reasting[Tr.RecInd]; Tr.RcPtYC=rnorthing[Tr.RecInd]; Tr.GrpElv=relev[Tr.RecInd]; if (Tr.RcPtXC == 0) { Tr.StaCor=30000; } output(Tr); } if ( j > 179 && j < 210) { Tr.RecInd=row7[rpattern[pattern[i]]]+j-180; Tr.RcPtXC=reasting[Tr.RecInd]; Tr.RcPtYC=rnorthing[Tr.RecInd]; Tr.GrpElv=relev[Tr.RecInd]; if (Tr.RcPtXC == 0) { Tr.StaCor=30000; } output(Tr); } if ( j > 209) { Tr.RecInd=row8[rpattern[pattern[i]]]+j-210; Tr.RcPtXC=reasting[Tr.RecInd]; Tr.RcPtYC=rnorthing[Tr.RecInd]; Tr.GrpElv=relev[Tr.RecInd]; if (Tr.RcPtXC == 0) { Tr.StaCor=30000; } output(Tr); } } i=9999; } } fclose(fmoon); } fclose(fstar); }