home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / hdf / unix / examples.lha / examples / sds / slices / windows.f < prev   
Encoding:
Text File  |  1991-10-22  |  1.4 KB  |  64 lines

  1. * Program windows                                *
  2. * This program writes out a 4D array in hdf format.             *
  3. * dimsizes={7,5,4,2} defines the dimension sizes of the output array.  *
  4. * windims={7,5,1,1} defines the dimension sizes of the slice (window).  *
  5. * dims={8,6,1,1} defines the dimension sizes of the input data array.   *
  6. * dims may be larger than windims. In this case, that actual data may    *
  7. * not be  contiguous in the input data array.                *
  8. * The four dimentions may represent width=7, height=5, depth=4 and      *
  9. * time=2.                                * 
  10.  
  11.     integer rank
  12.     integer i, j, ret
  13.     integer dimsizes(4),dims(4), windims(4)
  14.     real data(8,6,1,1)
  15.  
  16.     
  17. C       initialization    
  18.  
  19.     rank=4
  20.     
  21.     dimsizes(1) = 7
  22.     dimsizes(2) = 5
  23.     dimsizes(3) = 4
  24.     dimsizes(4) = 2
  25.  
  26.     dims(1) = 8
  27.     dims(2) = 6
  28.     dims(3) = 1
  29.     dims(4) = 1
  30.  
  31.     windims(1) = 7
  32.     windims(2) = 5
  33.     windims(3) = 1
  34.     windims(4) = 1
  35.  
  36.         do 130 j=1,dims(2)
  37.        do 120 i=1,dims(1)
  38.           data(i,j,1,1)=10.0*i+1.0*j
  39. 120        end do
  40. 130     end do
  41.  
  42.     ret=DFSDsetdims(rank, dimsizes)
  43.     if (ret .NE. 0)    write(*,*) 'Error in set dimsizes'
  44.  
  45.     ret = DFSDstartslice('windtest.hdf')
  46.     if (ret .NE. 0)    write(*,*) 'Error in startslice.'
  47.  
  48.     do 250 i=1,dimsizes(4)
  49.         do 200 j=1,dimsizes(3)    
  50.         ret = DFSDputslice(windims,data,dims)
  51.         if (ret .NE. 0)    write(*,*) 'Error in putslice', i,j
  52. 200         end do
  53. 250     end do
  54.  
  55.  
  56.     write(*,*) 'Calling DFSDendslice'
  57.     ret = DFSDendslice()
  58.     if (ret .NE. 0)    write(*,*) 'Error in calling endslice'
  59.     
  60.     stop
  61.     end
  62.  
  63.  
  64.