Laserfiche WebLink
<br />READ(5,*)IP <br />OUTFILE=OUTFILEO(IP) <br />OUTFILE(10:12)=NSTA <br />OPEN(3,FILE=OUTFILE,STATUS='UNKNOWN',RECL=464,FORM='UNFORMATTED' <br />+,ACCESS='DIRECT') <br />REWIND 1 <br />C date recycle point <br />15 READ(1,16,ERR=50)INFILE <br />16 FORMAT(39X,A12) <br />WRITE(6,*)INFILE,IP <br />CLOSE (2) <br />OPEN(2,FILE=INFILE,STATUS='OLD',RECL=460,FORM='UNFORMATTED' <br />+,IOSTAT=IER,ACCESS='DIRECT') <br />IF(IER.NE.0)WRITE(6,*)IER, ': can not open ',INFILE <br />C initial scan for echo coverage <br />JP=4 <br />IF(IP.LT.4)THEN <br />KNT=O <br />DO 18 L=1,360 <br />READ(2 ,REC=L,ERR=15) LN entire radial <br />DO 18 KM=1,230 <br />K=2*KM-1 <br />L1=LN(K) <br />IF(Ll.LT.0)L1=L1+256 <br />L2=LN(K+1) <br />IF(L2.LT.0)L2=L2+256 <br />LIN=L1*256+L2 ! reverse byte order <br />IF (LIN.GT.0)KNT=KNT+1 <br />18 CONTINUE <br />IF(KNT.LT.20000)JP=1 <br />IF(KNT.GE.20000.AND.KNT.LT.50000)JP=2 <br />IF(KNT.GE.50000)JP=3 <br />ENDIF ! for coverage partitioning <br />IF(JP.NE.IP)GOTO 15 ! for a different date; wrong partition <br />C get precip echo characteristics <br />DO 30 L=1,360 <br />READ(2,REC=L,ERR=15)LN ! entire radial <br />DO 20 KM=l,230 ! ranges <br />K=2*KM-1 <br />L1=LN(K) <br />IF(L1.LT.0)L1=L1+256 <br />L2=LN(K+1) <br />IF(L2.LT.0)L2=L2+256 <br />LIN=L1*256+L2 ! reverse byte order <br />IF(LIN.EQ.O)MINX(L,KM)=O <br />IF(LIN.GT.O)THEN <br />X=LIN <br />SX(L,KM)=SX(L,KM)+X ! sum of non-zero values <br />SX2(L,KM)=SX2(L,KM)+X*X ! sum of squares <br />NX(L,KM)=NX(L,KM)+l <br />MINX(L,KM)=MINO(MINX(L,KM),LIN) <br />MAXX(L,KM)=MAXO(MAXX(L,KM),LIN) <br />ENDIF <br />20 CONTINUE ! range loop <br />30 CONTINUE ! azimuth loop <br />GOTO 15 ! for another date <br />C summary after last file <br />50 DO 59 L=1,360 <br />DO 58 KM=1,230 <br />58 LINE(KM)=NX(L,KM) ! counts <br />59 WRITE(3,REC=L)LINE,JP <br />DO 53 L=1,360 <br />DO 52 KM=l,230 <br />52 LINE(KM)=MINX(L,KM) ! m~n~ma <br />53 WRITE(3,REC=360+L)LINE,JP <br />DO 56 L=1,360 <br />DO 55 KM=1,230 <br />55 LINE(KM)=MAXX(L,KM) ! maxima <br />56 WRITE(3,REC=720+L)LINE,JP <br />DO 62 L=1,360 <br />DO 61 KM=1,230 <br />AVE=O. <br />IF(NX(L,KM).GT.O)AVE=SX(L,KM)/FLOAT(NX(L,KM)) <br />61 LINE(KM)=AVE ! averages <br />62 WRITE(3,REC=1080+L)LINE,JP <br />DO 65 L=1,360 <br />DO 64 KM=1,230 <br />STD=O. <br />IF(NX(L,KM) .GT.1)THEN <br />S=SX(L,KM) <br />S2=SX2(L,KM) <br /> <br />24 <br />