PROGRAM CACDLY DIMENSION IWW(8),ISKWND(3,8) CHARACTER*5 BKIDN CHARACTER IBUF*13000 c write(6,*)'Local users, do the following, ' write(6,*)'(msread -fch local remote) to transfer file from mss' write(6,*)' ' write(6,*)' This code reads a basic CAC daily file (new format)' write(6,*)' either blocked or unblocked. If blocked set the ' write(6,*)' record lengths for pre-1994 (lrec93) and post-1993' write(6,*)' (lrec94) accordingly. If unblocked set both equal ' write(6,*)' or greater than the longest possible length. ' write(6,*)' It expects the input file as a directed input, ' write(6,*)' e.g a.out < data (uncompressed data file) ' write(6,*)' or zcat data.Z | a.out (compressed data file)' lrec93=184 lrec94=184 c print 1000 1000 format( * ' Variables numbered as in format ',/, * 114x,'17-24 25-32',43x,'36-59',/, * ' 1 2 3 4 5 6 7 8 9' * ' 10 11 12 13 14 15 16 ---------------' * ' -------- 33 34 35 ------------------------------------------' * '------------------------------------- 60',/) c NREC=0 1 NREC=NREC+1 READ(5,'(A)',ERR=50,END=100) IBUF ib=1 2 READ(IBUF(ib:),10,ERR=50) IDATE IF(IDATE.LE.0) GO TO 1 IF(IDATE.GT.19940000) GO TO 15 READ(IBUF(ib:),10,ERR=50) IDATE,BKIDN,RMAX,RMIN,RPRCP, *EPRCP,VP,POTEV,VPD,SLP06,SLP12,SLP18,SLP00,APTMX,CHILLM,RAD,MAXFL, *MINFL,IFPRQ,IFPRT,NOBS,NOBSP,NOPE,NTRACE,IWW,MXRH,MNRH,IFVPQ 10 FORMAT(1X,I8,A5,2F5.1,2F6.1,3F6.2,5F6.1,F5.1,F5.2,8I1,8A1,2I3, *1X,I1,2X) PRINT 11,IDATE,BKIDN,RMAX,RMIN,RPRCP,EPRCP,VP, *POTEV,VPD,SLP06,SLP12,SLP18,SLP00,APTMX,CHILLM,RAD,MAXFL,MINFL, *IFPRQ, IFPRT,NOBS,NOBSP,NOPE,NTRACE,IWW,MXRH,MNRH,IFVPQ 11 FORMAT(1X,I8,1X,A5,2F6.1,2F7.1,3F7.2,5F7.1,F6.1,F6.2,8I2,1X,8A1, *2I4,I2) ib=ib+lrec93 GO TO 2 15 CONTINUE READ(IBUF(ib:),20,ERR=50) IDATE,BKIDN,RMAX,RMIN,RPRCP, *EPRCP,VP,POTEV,VPD,SLP06,SLP12,SLP18,SLP00,APTMX,CHILLM,RAD,MAXFL, *MINFL,IFPRQ,IFPRT,NOBS,NOBSP,NOPE,NTRACE,IWW,MXRH,MNRH,IFVPQ, *ISKWND,ISNOW 20 FORMAT(1X,I8,A5,2F5.1,2F6.1,3F6.2,5F6.1,F5.1,F5.2,8I1,8A1,2I3,1X, *I1,8(2I2,I3),I5) PRINT 21,IDATE,BKIDN,RMAX,RMIN,RPRCP,EPRCP,VP, *POTEV,VPD,SLP06,SLP12,SLP18,SLP00,APTMX,CHILLM,RAD,MAXFL,MINFL, *IFPRQ,IFPRT,NOBS,NOBSP,NOPE,NTRACE,IWW,MXRH,MNRH,IFVPQ,ISKWND, *ISNOW 21 FORMAT(1X,I8,1X,A5,2F6.1,2F7.1,3F7.2,5F7.1,F6.1,F6.2,8I2,1X,8A1, *2I4,I2,8(2I3,I4),I6) ib=ib+lrec94 GO TO 2 50 CONTINUE PRINT 51,NREC 51 FORMAT(' ERROR, REC',I10) GO TO 1 100 CONTINUE NREC=NREC-1 PRINT 101,NREC 101 FORMAT('0RECORDS READ',I10) END