implicit none character*1 head character*5 tow character*100 inline, inline2 integer i, j, month, day, year, hour, minute real TEMP10, TEMP10F, REL_HUM, WDIR10M, VWDIR10, WS10MS, WSPD10, - VWSPP10, PKWS10Q, Rdata(10) Real STAB, WDrStd10, WDrStd30, WdrStd100 data tow/'TOWM '/ open(10,file='TowM_15.txt') read(10,*) head read(10,'(a)') inline2 if (inline2(16:16) .eq. ',') then read(inline2,'(i2,2(1x,i2),2x,2(i2,1x),a)') - month, day, year, hour, minute,inline else read(inline2,'(i2,2(1x,i2),2x,i1,1x,i2,1x,a)') - month, day, year, hour, minute,inline endif close(10) Call readL(inline, rData) WSPD10 = Rdata(7) WDIR10M = Rdata(4) TEMP10F = Rdata(2) REL_HUM = Rdata(3) open(20,file='TowMout.txt') write(20,'(a5,3i2.2,1x,2i2.2,23f8.2,a)') - Tow, month, day, year, hour, minute, - WDIR10M, -999.99, -999.99, -999.990, WSPD10, - -999.99, -999.99, -999.99, TEMP10F, -999.99, - -999.99, -999.00, REL_HUM, -999.99, -999.99, -999.99, - -999.99, (-999.99, j = 1,6), ' 0015 00015' close(20) stop end c------------------------------------------ subroutine readL(inline, rData) implicit none integer i, l, iStart, iEnd, ios real rData(10) character*100 inline character*10 cDum i = 1 do while (i .le. 100) if (inline(i:i) .ne. ' ') then l = i endif i = i+1 end do i = 1 iStart = 1 iEnd = 2 do while (iEnd .le. l .and. i .le. 10) if (inline(iend:iend) .eq. ',') then iEnd = iEnd - 1 cDum = inline(iStart:iStart+2) if (cDum .eq. 'N/A' .or. - cDum .eq. 'INV') then rData(i) = -999.99 else cDum = inline(iStart:iEnd) read(cDum,'(f10.0)', iostat=ios) rdata(i) if (ios .ne. 0) then rdata(i) = -999.99 Endif End if i = i + 1 iStart = iEnd + 2 iEnd = iStart else iEnd = iEnd + 1 Endif end do return end