Old station data problem

zilore mumba zmumba at YAHOO.COM
Thu Jan 24 09:47:43 EST 2008


Help needed with the station data problem which I met more than five years ago and, as far as I remember, many other grads users also faced. I have gone through the archives, I do not find the solution.
  The problem:
  I want to write station rainfall to binary to display. I used the example of rainfall in the grads documentation. When I run stnmap I get the error below. I wrote the data with acess='direct', in which case the time group terminator is padded with zeros since it has six items as opposed to 7 for the data group. I thought this was the Invalid station hdr found in station binary file.
I then wrote the data with access='sequential (now no zeros padded).
  The program re-reads and re-writes the data and it appears ok (though I do not understand the 10-digit number as flag = 1123457434  in the error message below).
  I have attached the fortran program, ctl file and data, below.

  Will appreciate anybody with a fix for my problem
  Zilore Mumba

   Name of binary data set: rainout.dat
  Number of times in the data set: 2
  Number of surface variables: 1
  Number of level dependent variables: 0
  Starting scan of station data binary file.
Binary data file open: rainout.dat
Processing time = 1
  Invalid station hdr found in station binary file
  Possible causes:  Invalid level count in hdr
                    Descriptor file mismatch
                    File not station data
                    Invalid relative time
    levs = 1  flag = 1123457434  time = 1.4013e-45
Open Error:  Can't open description file
File name is:  rain
Open Error:  Can't open description file
File name is:  rain
Open Error:  Can't open description file
File name is:  rain
Open Error:  Can't open description file
File name is:  rain
Open Error:  Can't open description file
File name is:  rain

  $debug
 program stndata
   implicit none
      integer          :: i
    integer          :: IYEAR,IMONTH,IYROLD,IMNOLD
    integer          :: NFLAG,IFLAG,NLEV

      real              :: LAT,LON,RVAL,tim

      CHARACTER(len=4) :: STID

       OPEN (8,NAME='rainin.dat',status='old')
       OPEN (12,file='rainout.dat',FORM='BINARY',ACCESS='SEQUENTIAL')
         !OPEN (12,file='rainout.dat',form='unformatted',access='direct',recl=8*7)

    IFLAG = 0
  !  Read and Write
10     READ (8,9000,END=90) IYEAR,IMONTH,STID,LAT,LON,RVAL
9000   FORMAT (1x,I4,2X,I1,2X,A3,3(2x,F5.1))
         IF (IFLAG.EQ.0) THEN
          IFLAG = 1
          IYROLD = IYEAR
          IMNOLD = IMONTH
       ENDIF
  !  If new time group, write time group terminator.
!  Assuming no empty time groups.

       IF (IYROLD.NE.IYEAR.OR.IMNOLD.NE.IMONTH) THEN
          NLEV = 0
          write(12)stid,lat,lon,tim,nlev,nflag
       ENDIF

       IYROLD = IYEAR
       IMNOLD = IMONTH
  !  Write this report
       tim = 0.0
       NLEV = 1
       NFLAG = 1

       write(12)stid,lat,lon,tim,nlev,nflag,rval
         GOTO 10

!  On end of file write last time group terminator.
  90    CONTINUE
       NLEV = 0

    write(12)stid,lat,lon,tim,nlev,nflag
      close(12)

!****open output file to check how data was written *************
      open(10,file='rainout.dat',FORM='BINARY',ACCESS='SEQUENTIAL')

 do i=1,4
      read(10) stid,lat,lon,tim,nlev,nflag,rval    !*** read and print the ***
      print*, stid,lat,lon,tim,nlev,nflag,rval    !** four stations at t=1***
 enddo
 read(10) stid,lat,lon,tim,nlev,nflag     !*** read and print the***
 print*,stid,lat,lon,tim,nlev,nflag      !**time group terminator*

 do i=1,4
       read(10) stid,lat,lon,tim,nlev,nflag,rval
       print*, stid,lat,lon,tim,nlev,nflag,rval
 enddo
 read(10) stid,lat,lon,tim,nlev,nflag
 print*,stid,lat,lon,tim,nlev,nflag

    END program stndata

  DSET ^rainout.dat
DTYPE  station
STNMAP ^rainout.map
UNDEF  -99
TITLE  Station Data Sample
TDEF   2 linear 06z01Mar2007 6hr
VARS 1
r   0 99 rainfall
ENDVARS

   1980  1  QQQ    8.3   05.5  123.3
 1980  1  RRR   14.2   10.5    87.1
 1980  1  SSS   10.4  -03.5  412.8
 1980  1  TTT     06.4   01.5   23.3
 1980  2  QQQ    8.3   05.5  145.1
 1980  2  RRR   14.2   10.5  871.4
 1980  2  SSS   10.4  -03.5  223.1
 1980  2  TTT    06.4   01.5    45.5




---------------------------------
Be a better friend, newshound, and know-it-all with Yahoo! Mobile.  Try it now.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://gradsusr.org/pipermail/gradsusr/attachments/20080124/5d2bc183/attachment.html 


More information about the gradsusr mailing list