Data are stored in ASCII All values are integers. Missing grid point values are denoted with -99 The day (set "1" for this dataset), month and year are stored at the start of each month. Data Array (72x37) Item (1,1) stores the value for the 5-deg-area centred at 180W and 90N Item (72,37) stores the value for the 5-deg-area centred at 175E and 90S (Ignore areas beyond 90-deg latitude). ----- ----- | | | | YR | MON | |_____|_____|__________________________________ 90N |(1,1) | | | | | | | | | | | Equ |(1,19) | | | | | | | | | | | 90S |(1,37)_________________________________(72,37)| 180W 0 180E The following Fortran will read the data program read_hadslp_nobs c this program reads in the HadSLP2 nobs c data set (bulk ascii version). c The data is 5 x 5 degree, from 90 deg north to 90 c deg south and from 180 deg east to 535 deg. It is c monthly data from 1850-2004. implicit none integer nyr parameter (nyr = 155) integer nlat, nlon parameter(nlon=72,nlat=37) integer n_month parameter (n_month=12) integer idata(nlon,nlat) integer ilat, ilon integer iyear, imonth real gd(nlon,nlat,n_month,nyr) ! input bulk array real xlat(nlat), xlon(nlon) integer HEADER(2) c---------------------------------------------------------------------- open(10,file='hadslp2_nobs.asc', & status='old',form='formatted') do iyear=1,nyr do imonth=1,n_month read(10,'(2i7)',err=888,end=999)header PRINT*,'YEAR: ',HEADER(1),' MONTH: ',HEADER(2) read(10,'(72i8)',err=888,end=999)idata do ilat=1,37 do ilon=1,72 gd(ilon,ilat,imonth,iyear)=(idata(ilon,ilat)*1.0) enddo enddo enddo enddo go to 300 888 stop 'error' 999 stop'eof' 300 write(6,*)'have read in bulk file ok' c------------------------------------------------------------------ c define longitudes do ilon=1, nlon xlon(ilon)=180.+(ilon-1)*5. enddo c define latitudes do ilat=1, nlat xlat(ilat)=95.-ilat*5. enddo c-------------------------------------------------------------------------