program read_txt c--------------------------------------------------- Apr. 07 by Shin c Read the daily ascii observation data in SE USA and c make a GrADS format data c modified by Shin (Sep. 2011) c-------------------------------------------------------------------- parameter(nlon=82,nlat=82,iyear=26,iday=366) dimension flat(nlat),flon(nlon) dimension temp(iday) dimension final(nlon,nlat,iday,iyear) integer id, iyr real lat,lon open(10,file='fix_daily7010_tmax.txt', & status='old',form='formatted') open(11,file='reg_lat',status='old',form='formatted') open(12,file='reg_lon',status='old',form='formatted') open(20,file='tmax_daily.unf', status='unknown', & form='unformatted', access='direct', recl=nlon*nlat) do k2=1,iyear do k1=1,iday do j=1,nlat do i=1,nlon final(i,j,k1,k2)=-99.9 enddo enddo enddo enddo read(11,'(7f10.2)') flat read(12,'(7f10.2)') flon cm DO iread=1,22154 cm DO iread=1,85239 DO iread=1,73636 read(10,33) id,lat,lon,iyr,temp kk=iyr-1978 if(kk.ge.1.and.kk.le.iyear) then do j=1,nlat if(lat.eq.flat(j)) then do i=1,nlon if(lon.eq.flon(i)) then do k=1,iday if(temp(k).eq.-99.9) then final(i,j,k,kk)=-99.9 else final(i,j,k,kk)=(temp(k)-32.)*5./9. endif enddo goto 999 endif enddo endif enddo endif 999 continue ENDDO irec=1 do k2=1,iyear ikk=k2+1978 do k1=1,iday if(mod(ikk,4).eq.0) then write(20,rec=irec) ((final(i,j,k1,k2),i=1,nlon),j=1,nlat) irec=irec+1 else if(k1.eq.60) goto 1010 write(20,rec=irec) ((final(i,j,k1,k2),i=1,nlon),j=1,nlat) irec=irec+1 1010 continue endif enddo enddo 33 format(i4,2x,f5.2,2x,f6.2,2x,i4,366f8.2) stop end