implicit none character*1 head character*300 inline, inline2 integer i, month, day, year, hour, minute real WS10MS, WS30MS, WS60MS Real STAB, WDrStd10, WDrStd30, WdrStd60, rData(40) open(10,file='TOWK.txt') open(20,file='TowerKL.txt') c if TowK doesn't have headers, take out this line 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 Call readL(inline, rData) c read(inline,*) c - TEMP10,TEMP60,TEMP10F,TEMP60F,DTEMP60,DEWPT10,DEWPT10F,REL_HUM, c - BP_IN,BP_MB,SOLAR_LG,SOLARWM2,PRECIP_I,PRECIP_M,WDIR10M,WDIR60M, c - VWDIR10,VWDIR60,WS10MS,WS60MS,WSPD10,WSPD60,VWSPD10,VWSPD60, c - PKWS10Q,PKWS60Q,SVP,VP,LHV,SMR,MR c m/s to mph WS10MS = rData(19) * 2.2369 WS60MS = rData(20) * 2.2369 stab = -999.99 write(20,'(a5,3i2.2,1x,2i2.2,23f8.2,a)') - 'TOWK ',month, day, year, hour, minute, - rData(15), -999.99, rData(16), -999.99, WS10MS, -999.99, WS60MS, - -999.99, rData(3), -999.99, rData(4), -999.99, rData(8), Stab, - -999.99, -999.99, -999.99, -999.99, -999.99, -999.99, - rData(13), rData(9), rData(11), ' 0015 00015' open(10,file='TOWL.txt') c if TowL doesn't have headers, take out this line 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 Call readL(inline, rData) c read(inline,*) c - TEMP10,TEMP30,TEMP10F,TEMP30F,DTEMP30,BP_IN,BP_MB,SOLAR_LG, c - SOLARWM2,PRECIP_I,PRECIP_M,WDIR10M,WDIR30M,VWDIR10,VWDIR30, c - WS10MS,WS30MS,WSPD10,WSPD30,VWSPD10,VWSPD30,PKWS10Q,PKWS30Q c m/s to mph WS10MS = rData(16) * 2.2369 WS30MS = rData(17) * 2.2369 write(20,'(a5,3i2.2,1x,2i2.2,23f8.2,a)') - 'TOWL ',month, day, year, hour, minute, - rData(12), rData(13), -999.99, -999.99, WS10MS, WS30MS, -999.99, - -999.99, rData(3), rData(4), -999.99, -999.99, -999.99, Stab, - -999.99, -999.99, -999.99, -999.99, -999.99, -999.99, - rData(10), rData(6), rData(8), ' 0015 00015' stop end c------------------------------------------ subroutine readL(inline, rData) implicit none integer i, l, iStart, iEnd, ios real rData(40) character*300 inline character*10 cDum i = 1 do while (i .le. 300) if (inline(i:i) .ne. ' ') then l = i endif i = i+1 end do i = 1 iStart = 1 iEnd = 2 do while (iEnd .lt. l .and. i .le. 100) 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