program writegrads ********************************************************** *This program reades soil moisture data for 1m and 10cm *layers and ratio 10cm/1m from ../Data *Files have been edited first by Adam and later by myself. * There are no dublcates. Coordinates is taken from separate * station list. *I edited again the data 1978-85 and removed some of them. * I added two stations from H/B data sets *OUTPUT IS GRADS FILES ******************************************************************* character*8 name character*20 stname(136) dimension xmud(1:130,1978:1985,1:36) dimension ymud(1:116,1978:1985,1:36) dimension rmud(1:116,1978:1985,1:36) dimension nst(130),stlat(130),stlon(130) dimension nsty(116),stlaty(116),stlony(116) dimension z(120,36) CCC INPUT FILES open (41,status='old',file='Data/soil.10') open (42,status='old',file='Data/soil.100') open (43,status='old',file='Data/soil.r10') CCC STATIONS BINARY FILE open (30, file='Grads/st.n100', $form='UNFORMATTED',recordtype='STREAM',status='unknown') open (31, file='Grads/st.n10', $form='UNFORMATTED',recordtype='STREAM',status='unknown') open (35, file='Grads/st.r10', $form='UNFORMATTED',recordtype='STREAM',status='unknown') C GRIDDED BINARY FILE open (32, file='Grads/grd.n100', $ access='direct',form='UNFORMATTED',recl=4320,status='unknown') open (33, file='Grads/grd.n10', $ access='direct',form='UNFORMATTED',recl=4320,status='unknown') open (34, file='Grads/grd.r10', $ access='direct',form='UNFORMATTED',recl=4320,status='unknown') ************************************************************ CCC READING DATA IN FILE XMUD,YMUD,RMUD *********************************************************** ************************************************************* CCCCCC READ ascii Input formatted file 100cm do i=1,130 do iyear=1978,1985 read (42,777) nst(i),stlat(i),stlon(i),iyear, + (xmud(i,iyear,m),m=1,36) enddo enddo 777 format (1x,i5,2(1x,f6.2),1x,i4,36(1x,f4.1)) ********************************************************************* CCCCCC READ ascii Input formatted files 10cm and ratio 10cm/1m do i=1,116 do iyear=1978,1985 read (41,777) nsty(i),stlaty(i),stlony(i),iy, + (ymud(i,iyear,m),m=1,36) read (43,778) nnn,d1,d2,iy, + (rmud(i,iyear,m),m=1,36) 778 format (1x,i5,2(1x,f6.2),1x,i4,36(1x,f6.3)) enddo enddo ************************************************************************** ************************************************************* CCC TO WRITE GRADS STATIONS BINARY FILES 100cm nulat=0.0 nulon=0.0 tim=0.0 nulev=0 *** write data for the very beginning of January 1978 do i=1,130 write(name,555) nst(i) write (30) name,stlat(i),stlon(i),0.0,1,1 write (30) 99.9 enddo c TIME GROUP TERMINATOR write (30) name,nulat,nulon,tim,nulev,1 do 20 iyear=1978,1985 do 20 m=1,36 do 22 i=1,130 write(name,555) nst(i) 555 format(i5) write (30) name,stlat(i),stlon(i),0.0,1,1 smoist=ABS(xmud(i,iyear,m)) xmud(i,iyear,m)=smoist write (30) smoist 22 continue c TIME GROUP TERMINATOR write (30) name,nulat,nulon,tim,nulev,1 20 continue CCC WRITE GRADS GRIDDED BINARY FILES - TEMPLATES do 30 i=1,120 do 30 j=1,36 z(i,j)=0.0 30 continue irec=1 write (32,rec=irec) z write (33,rec=irec) z write (34,rec=irec) z do 31 iyear=1978,1985 do 31 m=1,36 irec=irec+1 write (32,rec=irec) z write (33,rec=irec) z write (34,rec=irec) z 31 continue ************************************************************************** CCC WRITE GRADS STATIONS BINARY FILES 10cm and r10 *** Write very beginning of January 1978 do i=1,116 write(name,555) nsty(i) write (31) name,stlaty(i),stlony(i),0.0,1,1 write (35) name,stlaty(i),stlony(i),0.0,1,1 write (31) 99.9 write (35) 99.9 enddo c TIME GROUP TERMINATOR write (31) name,nulat,nulon,tim,nulev,1 write (35) name,nulat,nulon,tim,nulev,1 *** Write 8 years data do 70 iyear=1978,1985 do 70 m=1,36 do 72 i=1,116 write(name,555) nsty(i) write (31) name,stlaty(i),stlony(i),0.0,1,1 write (35) name,stlaty(i),stlony(i),0.0,1,1 smoist=ABS(ymud(i,iyear,m)) ymud(i,iyear,m)=smoist write (31) smoist write (35) rmud(i,iyear,m) 72 continue c TIME GROUP TERMINATOR write (31) name,nulat,nulon,tim,nulev,1 write (35) name,nulat,nulon,tim,nulev,1 70 continue ************************************************************************** stop end