C CI Read raw real data and convert to complex data for calculation. COMPLEX TARGET(100,4,21) REAL kgateleft,kgateright,RAW(42),sig(4),sigd,sigm,sigt(4) INTEGER NPTS,NTRACE,MEASFLAG(3) CHARACTER*12,FILENAME(3) character ang*2,title*4,p*1,filez*60,TYPE*1 C CI print*,'Enter short (4 letters) file specifier for', # 'output files:' read(*,'(a4)')title 50 continue c print*,'Enter incidence angle in degrees:' read(*,'(a2)')ang print*,'Read number of files to be combined at this', # 'angle:' read(*,'(i1)')NI C do 21,i = 1,ni print*,'Enter filename for file # ',i read(*,'(a12)')filename(i) if (filename(i) .eq. 'stopstopstop') then goto 37 else continue end if filez =filename(i) nfile = 12+i open(nfile,file=filename(i)) 21 CONTINUE c****** NPTS = 21 NTOTAL = 0 DO 25,I=1,NI READ(12+i,2000) NTRACE,NFREQ,KGATELEFT,KGATERIGHT PRINT*,NTRACE,NFREQ, # KGATELEFT,KGATERIGHT 2000 format(1x,i2,12x,i1,13x,f5.1,9x,f5.1) C C C IF(NFREQ.EQ.1)THEN TYPE = 'l' ELSEIF(NFREQ.EQ.2)THEN TYPE = 'c' ELSE TYPE = 'x' ENDIF C DO 10 IT=NTOTAL +1,NTOTAL +NTRACE DO 12 IP=1,4 READ(12+I,*) (RAW(K),K=1,NPTS*2) DO 14 J=1,NPTS J2=J*2-1 14 TARGET(IT,IP,J)=CMPLX(RAW(J2),RAW(J2+1)) c14 print*,'target(',it,ip,j,') = ',target(it,ip,j) 12 CONTINUE 10 CONTINUE NTOTAL = NTOTAL + NTRACE 25 CONTINUE DO 15 I=1,NI CLOSE(12+I) 15 CONTINUE C C do 30 it=1,ntrace C print *, (20.0*alog10(cabs(target(1,it,1,i,11))),i=1,4) C & ,(20.0*alog10(cabs(target(1,it,2,i,11))),i=1,4) C & ,(20.0*alog10(cabs(target(1,it,3,i,11))),i=1,4) C 30 continue C C OPEN(10,FILE=title//'t_'//ang//'.'//TYPE) C C DO 201 I=1,NI sigt(1)=0.0 sigt(2)=0.0 sigt(3)=0.0 sigt(4)=0.0 DO 201 IT=1,NTOTAL sig(1)=0.0 sig(2)=0.0 sig(3)=0.0 sig(4)=0.0 DO 20 IP=1,4 DO 20 ID=3,NPTS-2,1 sigd=cabs(target(it,ip,id)) sigm=20.0*alog10(sigd) sig(ip)= sig(ip) + sigd/(npts-4) c print *, ip,id,sigm,sig(ip) 20 CONTINUE sigt(1)=sigt(1)+ sig(1)/ntotal sigt(2)=sigt(2)+ sig(2)/ntotal sigt(3)=sigt(3)+ sig(3)/ntotal sigt(4)=sigt(4)+ sig(4)/ntotal sig(1)=20.0*alog10(sig(1)) sig(2)=20.0*alog10(sig(2)) sig(3)=20.0*alog10(sig(3)) sig(4)=20.0*alog10(sig(4)) write(10,*) it,sig(1),sig(2),sig(3),sig(4) 201 continue sigt(1)=20.0*alog10(sigt(1)) sigt(2)=20.0*alog10(sigt(2)) sigt(3)=20.0*alog10(sigt(3)) sigt(4)=20.0*alog10(sigt(4)) write(10,*) 'ave',sigt(1),sigt(2),sigt(3),sigt(4) CLOSE(10) C print'(1X,A20)','Do another set (y,n)?' read(*,'(a1)')p if(p.eq.'y'.OR.P.EQ.'Y')goto 50 37 continue STOP END C This file is for snow data.