home *** CD-ROM | disk | FTP | other *** search
/ Photo CD Demo 1 / Demo.bin / hdf / unix / hdf3_2r2 / src / dfsdff.f < prev    next >
Encoding:
Text File  |  1992-10-29  |  18.7 KB  |  553 lines

  1. C***************************************************************************
  2. C
  3. C
  4. C                         NCSA HDF version 3.2r2
  5. C                            October 30, 1992
  6. C
  7. C NCSA HDF Version 3.2 source code and documentation are in the public
  8. C domain.  Specifically, we give to the public domain all rights for future
  9. C licensing of the source code, all resale rights, and all publishing rights.
  10. C
  11. C We ask, but do not require, that the following message be included in all
  12. C derived works:
  13. C
  14. C Portions developed at the National Center for Supercomputing Applications at
  15. C the University of Illinois at Urbana-Champaign, in collaboration with the
  16. C Information Technology Institute of Singapore.
  17. C
  18. C THE UNIVERSITY OF ILLINOIS GIVES NO WARRANTY, EXPRESSED OR IMPLIED, FOR THE
  19. C SOFTWARE AND/OR DOCUMENTATION PROVIDED, INCLUDING, WITHOUT LIMITATION,
  20. C WARRANTY OF MERCHANTABILITY AND WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE
  21. C
  22. C***************************************************************************
  23.  
  24. C
  25. C $Header: /hdf/hdf/v3.2r2/src/RCS/dfsdff.f,v 1.1 1992/08/25 21:40:44 koziol beta koziol $
  26. C
  27. C $Log: dfsdff.f,v $
  28. c Revision 1.1  1992/08/25  21:40:44  koziol
  29. c Initial revision
  30. c
  31. C
  32. C------------------------------------------------------------------------------
  33. C File:     dfsdFf.f
  34. C Purpose:  Fortran stubs for Fortran SDS routines
  35. C Invokes:  dfsdF.c dfsd.c
  36. C Contents: 
  37. C   dsgdims:        get dimensions of next SDG
  38. C   dsgdata:        get data for next SDG
  39. C   dssdast:        set strings for data for subsequent SDGs
  40. C   dssdist:        set strings for a dimension for subsequent SDGs
  41. C   dspdata:        write SDG to new file
  42. C   dsadata:        append SDG to existing file
  43. C   dsgslc:         get slice from file
  44. C   dssslc:         set up to write slices to file
  45. C   dsrref:        set up next ref to read
  46. C   dsnum:          return number of SDGs in file
  47. C   dfsdgetdims:    get dimensions of next SDG
  48. C   dfsdgetdata:    get data for next SDG
  49. C   dfsdsetdatastrs:set strings for data for subsequent SDGs
  50. C   dfsdsetdimstrs: set strings for a dimension for subsequent SDGs
  51. C   dfsdputdata:    write SDG to new file
  52. C   dfsdadddata:    append SDG to existing file
  53. C   dfsdgetslice:   get slice from file
  54. C   dfsdstartslice:set up to write slices to file
  55. C   dfsdreadref:    set up next ref to read
  56. C   dfsdnumber:     return number of SDGs in the file
  57. C Remarks: none
  58. C------------------------------------------------------------------------------
  59.  
  60.  
  61.  
  62. C------------------------------------------------------------------------------
  63. C Name: dsgdims
  64. C Purpose:  get dimensions of next SDG
  65. C Inputs:   filename: name of HDF file
  66. C           rank: integer to return rank in
  67. C           dimsizes: array to return dimensions in
  68. C           maxrank: size of array dimsizes
  69. C Returns: 0 on success, -1 on failure with DFerror set
  70. C Users:    HDF Fortran programmers
  71. C Invokes: dsigdim
  72. C------------------------------------------------------------------------------
  73.  
  74.       integer function dsgdims(filename, rank, dimsizes, maxrank)
  75.       character*(*) filename
  76.       integer rank, dimsizes, maxrank, dsigdim
  77.  
  78.       dsgdims = dsigdim(filename, rank, dimsizes, maxrank,
  79.      +                                              len(filename))
  80.  
  81.       return
  82.       end
  83.  
  84.  
  85. C------------------------------------------------------------------------------
  86. C Name:     dsgdata
  87. C Purpose:  get data from next SDG
  88. C Inputs:   filename: name of HDF file
  89. C           rank: integer containing no of dimensions in array data
  90. C           maxsizes: array containing dimensions of array data
  91. C           data: array to return data values in
  92. C Returns:  0 on success, -1 on failure with DFerror set
  93. C Users:    HDF Fortran programmers
  94. C Invokes:  dsigdat
  95. C------------------------------------------------------------------------------
  96.  
  97.       integer function dsgdata(filename, rank, maxsizes, data)
  98.       character*(*) filename
  99.       integer rank, maxsizes, dsigdat
  100.       real data
  101.  
  102.       dsgdata = dsigdat(filename, rank, maxsizes, data,
  103.      +                                                len(filename))
  104.       return
  105.       end
  106.  
  107.  
  108. C------------------------------------------------------------------------------
  109. C Name:     dssdast
  110. C Purpose:  set data strings to be written out with next SDG
  111. C Inputs:   label, unit, format, coordsys: strings to be set
  112. C Returns:  0 on success, -1 on failure with DFerror set
  113. C Users:    HDF Fortran programmers
  114. C Invokes:  dsisdas_
  115. C------------------------------------------------------------------------------
  116.  
  117.       integer function  dssdast(label, unit, format, coordsys)
  118.       character*(*) label, unit, format,  coordsys
  119.       integer dsisdas, len
  120.  
  121.       dssdast = dsisdas(label, unit, format, coordsys,
  122.      +1, len(label), len(unit), len(format), len(coordsys))
  123.  
  124.       return
  125.       end
  126.  
  127.  
  128. C------------------------------------------------------------------------------
  129. C Name:     dssdist
  130. C Purpose:  set dim strings to be written out with next SDG
  131. C Inputs:   label, unit, format, coordsys: strings to be set
  132. C Returns:  0 on success, -1 on failure with DFerror set
  133. C Users:    HDF Fortran programmers
  134. C Invokes:  dsisdis_
  135. C------------------------------------------------------------------------------
  136.  
  137.       integer function  dssdist(dim, label, unit, format)
  138.       character*(*) label, unit, format
  139.       integer dim, len
  140.       integer dsisdis
  141.  
  142.       dssdist = dsisdis(dim, label, unit, format,
  143.      +len(label), len(unit), len(format))
  144.  
  145.       return
  146.       end
  147.  
  148.  
  149. C------------------------------------------------------------------------------
  150. C Name:     dspdata
  151. C Purpose:  call dsipdat to write SDG to new file
  152. C Inputs:   filename: name of HDF file
  153. C           rank: no of dimensions of array data
  154. C           dimsizes: array containing the dimensions of array data
  155. C           data: array containing the data values
  156. C Returns:  0 on success, -1 on failure with DFerror set
  157. C Users:    HDF Fortran programmers
  158. C Invokes:  dsipdat
  159. C------------------------------------------------------------------------------
  160.  
  161.       integer function dspdata(filename, rank, dimsizes, data)
  162.       character*(*) filename
  163.       integer rank, dimsizes, data, len, dsipdat
  164.  
  165.       dspdata = dsipdat(filename, rank, dimsizes, data, len(filename))
  166.  
  167.       return
  168.       end
  169.  
  170.  
  171. C------------------------------------------------------------------------------
  172. C Name:     dsadata
  173. C Purpose:  call dsiadat to append SDG to existing file
  174. C Inputs:   filename: name of HDF file
  175. C           rank: no of dimensions of array data
  176. C           dimsizes: array containing the dimensions of array data
  177. C           data: array containing the data values
  178. C Returns:  0 on success, -1 on failure with DFerror set
  179. C Users:    HDF Fortran programmers
  180. C Invokes:  dsiadat
  181. C------------------------------------------------------------------------------
  182.  
  183.       integer function dsadata(filename, rank, dimsizes, data)
  184.       character*(*) filename
  185.       integer rank, dimsizes, data, len, dsiadat
  186.  
  187.       dsadata = dsiadat(filename, rank, dimsizes, data, len(filename))
  188.  
  189.       return
  190.       end
  191.  
  192.  
  193. C------------------------------------------------------------------------------
  194. C Name:     dsgslc
  195. C Purpose:  call dsigslc to get slice from file
  196. C Inputs:   filename: name of HDF file
  197. C           winst: array of size = rank of data, containing start of slice
  198. C           winend: array of size rank, containing end of slice
  199. C           data: array for returning slice
  200. C           ndims: no of dims of array data
  201. C           dims: dimensions of array data
  202. C Returns:  0 on success, -1 on failure with DFerror set
  203. C Users:    HDF Fortran programmers
  204. C Invokes:  dsigslc
  205. C------------------------------------------------------------------------------
  206.  
  207.       integer function dsgslc(filename,winst,windims,data,dims)
  208.       character*(*) filename
  209.       integer winst, windims, data, dims, dsigslc
  210.  
  211.       dsgslc = dsigslc(filename, winst, windims, data, dims,
  212.      +     len(filename))
  213.  
  214.       return
  215.       end
  216.  
  217.  
  218. C------------------------------------------------------------------------------
  219. C Name:     dssslc
  220. C Purpose:  call dsisslc to set up to write slices
  221. C Inputs:   filename: name of HDF file
  222. C Returns:  0 on success, -1 on failure with DFerror set
  223. C Users:    HDF Fortran programmers
  224. C Invokes:  dsisslc
  225. C------------------------------------------------------------------------------
  226.  
  227.       integer function dssslc(filename)
  228.       character*(*) filename
  229.       integer dsisslc
  230.  
  231.       dssslc = dsisslc(filename, len(filename))
  232.  
  233.       return
  234.       end
  235.  
  236.  
  237. C------------------------------------------------------------------------------
  238. C Name:     dsrref
  239. C Purpose:  call dsirref to set up next ref to read
  240. C Inputs:   filename: name of HDF file
  241. C           ref: next ref to read
  242. C Returns:  0 on success, -1 on failure with DFerror set
  243. C Users:    HDF Fortran programmers
  244. C Invokes:  dsirref
  245. C------------------------------------------------------------------------------
  246.  
  247.       integer function dsrref(filename, ref)
  248.       character*(*) filename
  249.       integer ref
  250.       integer dsirref
  251.  
  252.       dsrref = dsirref(filename, ref, len(filename))
  253.  
  254.       return
  255.       end
  256.  
  257.  
  258. C------------------------------------------------------------------------------
  259. C Name:     dsnum
  260. C Purpose:  return the number of SDGs in the file
  261. C Inputs:   filename: name of HDF file
  262. C Returns:  number of SDGs on success, -1 on failure with DFerror set
  263. C Users:    HDF Fortran programmers
  264. C Invokes:  dsinum
  265. C------------------------------------------------------------------------------
  266.  
  267.       integer function dsnum(filename)
  268.       character*(*) filename
  269.       integer len, dsinum
  270.  
  271.       dsnum = dsinum(filename, len(filename))
  272.  
  273.       return
  274.       end
  275.  
  276.  
  277. CEND7MAX
  278.  
  279.  
  280. C------------------------------------------------------------------------------
  281. C Name: dfsdgetdims
  282. C Purpose:  get dimensions of next SDG
  283. C Inputs:   filename: name of HDF file
  284. C           rank: integer to return rank in
  285. C           dimsizes: array to return dimensions in
  286. C           maxrank: size of array dimsizes
  287. C Returns: 0 on success, -1 on failure with DFerror set
  288. C Users:    HDF Fortran programmers
  289. C Invokes: dsigdim
  290. C------------------------------------------------------------------------------
  291.  
  292.       integer function dfsdgetdims(filename, rank, dimsizes, maxrank)
  293.       character*(*) filename
  294.       integer rank, dimsizes, maxrank, dsigdim
  295.  
  296.       dfsdgetdims = dsigdim(filename, rank, dimsizes, maxrank,
  297.      +                                              len(filename))
  298.  
  299.       return
  300.       end
  301.  
  302.  
  303. C------------------------------------------------------------------------------
  304. C Name:     dfsdgetdata
  305. C Purpose:  get data from next SDG
  306. C Inputs:   filename: name of HDF file
  307. C           rank: integer containing no of dimensions in array data
  308. C           maxsizes: array containing dimensions of array data
  309. C           data: array to return data values in
  310. C Returns:  0 on success, -1 on failure with DFerror set
  311. C Users:    HDF Fortran programmers
  312. C Invokes:  dsigdat
  313. C------------------------------------------------------------------------------
  314.  
  315.       integer function dfsdgetdata(filename, rank, maxsizes, data)
  316.       character*(*) filename
  317.       integer rank, maxsizes, dsigdat
  318.       real data
  319.  
  320.       dfsdgetdata = dsigdat(filename, rank, maxsizes, data,
  321.      +                                                len(filename))
  322.       return
  323.       end
  324.  
  325.  
  326. C------------------------------------------------------------------------------
  327. C Name:     dfsdsetdatastrs
  328. C Purpose:  set data strings to be written out with next SDG
  329. C Inputs:   label, unit, format, coordsys: strings to be set
  330. C Returns:  0 on success, -1 on failure with DFerror set
  331. C Users:    HDF Fortran programmers
  332. C Invokes:  dsisdas_
  333. C------------------------------------------------------------------------------
  334.  
  335.       integer function  dfsdsetdatastrs(label, unit, format, coordsys)
  336.       character*(*) label, unit, format,  coordsys
  337.       integer dsisdas, len
  338.  
  339.       dfsdsetdatastrs = dsisdas(label, unit, format, coordsys,
  340.      +1, len(label), len(unit), len(format), len(coordsys))
  341.  
  342.       return
  343.       end
  344.  
  345.  
  346. C------------------------------------------------------------------------------
  347. C Name:     dfsdsetdimstrs
  348. C Purpose:  set dim strings to be written out with next SDG
  349. C Inputs:   label, unit, format, coordsys: strings to be set
  350. C Returns:  0 on success, -1 on failure with DFerror set
  351. C Users:    HDF Fortran programmers
  352. C Invokes:  dsisdis_
  353. C------------------------------------------------------------------------------
  354.  
  355.       integer function  dfsdsetdimstrs(dim, label, unit, format)
  356.       character*(*) label, unit, format
  357.       integer dim, len
  358.       integer dsisdis
  359.  
  360.       dfsdsetdimstrs = dsisdis(dim, label, unit, format,
  361.      +len(label), len(unit), len(format))
  362.  
  363.       return
  364.       end
  365.  
  366.  
  367. C------------------------------------------------------------------------------
  368. C Name:     dfsdputdata
  369. C Purpose:  call dsipdat to write SDG to new file
  370. C Inputs:   filename: name of HDF file
  371. C           rank: no of dimensions of array data
  372. C           dimsizes: array containing the dimensions of array data
  373. C           data: array containing the data values
  374. C Returns:  0 on success, -1 on failure with DFerror set
  375. C Users:    HDF Fortran programmers
  376. C Invokes:  dsipdat
  377. C------------------------------------------------------------------------------
  378.  
  379.       integer function dfsdputdata(filename, rank, dimsizes, data)
  380.       character*(*) filename
  381.       integer rank, dimsizes, data, len, dsipdat
  382.  
  383.       dfsdputdata = dsipdat(filename,rank,dimsizes,data,len(filename))
  384.  
  385.       return
  386.       end
  387.  
  388.  
  389. C------------------------------------------------------------------------------
  390. C Name:     dfsdadddata
  391. C Purpose:  call dsiadat to append SDG to existing file
  392. C Inputs:   filename: name of HDF file
  393. C           rank: no of dimensions of array data
  394. C           dimsizes: array containing the dimensions of array data
  395. C           data: array containing the data values
  396. C Returns:  0 on success, -1 on failure with DFerror set
  397. C Users:    HDF Fortran programmers
  398. C Invokes:  dsiadat
  399. C------------------------------------------------------------------------------
  400.  
  401.       integer function dfsdadddata(filename, rank, dimsizes, data)
  402.       character*(*) filename
  403.       integer rank, dimsizes, data, len, dsiadat
  404.  
  405.       dfsdadddata = dsiadat(filename,rank,dimsizes,data,len(filename))
  406.  
  407.       return
  408.       end
  409.  
  410.  
  411. C------------------------------------------------------------------------------
  412. C Name:     dfsdgetslice
  413. C Purpose:  call dsigslc to get slice from file
  414. C Inputs:   filename: name of HDF file
  415. C           winst: array of size = rank of data, containing start of slice
  416. C           winend: array of size rank, containing end of slice
  417. C           data: array for returning slice
  418. C           ndims: no of dims of array data
  419. C           dims: dimensions of array data
  420. C Returns:  0 on success, -1 on failure with DFerror set
  421. C Users:    HDF Fortran programmers
  422. C Invokes:  dsigslc
  423. C------------------------------------------------------------------------------
  424.  
  425.       integer function dfsdgetslice(filename, winst, winend, data,
  426.      +                                                     dims)
  427.       character*(*) filename
  428.       integer winst, winend, data,  dims, dsigslc
  429.  
  430.       dfsdgetslice = dsigslc(filename, winst, winend, data,
  431.      +                                             dims, len(filename))
  432.  
  433.       return
  434.       end
  435.  
  436.  
  437. C------------------------------------------------------------------------------
  438. C Name:     dfsdstartslice
  439. C Purpose:  call dsisslc to set up to write slices
  440. C Inputs:   filename: name of HDF file
  441. C Returns:  0 on success, -1 on failure with DFerror set
  442. C Users:    HDF Fortran programmers
  443. C Invokes:  dsisslc
  444. C------------------------------------------------------------------------------
  445.  
  446.       integer function dfsdstartslice(filename)
  447.       character*(*) filename
  448.       integer dsisslc
  449.  
  450.       dfsdstartslice = dsisslc(filename, len(filename))
  451.  
  452.       return
  453.       end
  454.  
  455. C------------------------------------------------------------------------------
  456. C Name:     dfsdreadref
  457. C Purpose:  call dsirref to set up next ref to read
  458. C Inputs:   filename: name of HDF file
  459. C           ref: next ref to read
  460. C Returns:  0 on success, -1 on failure with DFerror set
  461. C Users:    HDF Fortran programmers
  462. C Invokes:  dsirref
  463. C------------------------------------------------------------------------------
  464.  
  465.       integer function dfsdreadref(filename, ref)
  466.       character*(*) filename
  467.       integer ref
  468.       integer dsirref
  469.  
  470.       dfsdreadref = dsirref(filename, ref, len(filename))
  471.  
  472.       return
  473.       end
  474.  
  475.  
  476. C------------------------------------------------------------------------------
  477. C Name:     dfsdnumber
  478. C Purpose:  return the number of SDGs in the file
  479. C Inputs:   filename: name of HDF file
  480. C Returns:  number of SDGs on success, -1 on failure with DFerror set
  481. C Users:    HDF Fortran programmers
  482. C Invokes:  dsinum
  483. C------------------------------------------------------------------------------
  484.  
  485.       integer function dfsdnumber(filename)
  486.       character*(*) filename
  487.       integer len, dsinum
  488.  
  489.       dfsdnumber = dsinum(filename, len(filename))
  490.  
  491.       return
  492.       end
  493.  
  494.  
  495. C------------------------------------------------------------------------------
  496. C Name:     dfsdgetdimstrs
  497. C Purpose:  return the label unit and format for the current SDGs 
  498. C Inputs:   
  499. C Returns:  -1 on failure with DFerror set
  500. C Users:    HDF Fortran programmers
  501. C Invokes:  dsinum
  502. C------------------------------------------------------------------------------
  503.  
  504.       integer function dfsdgetdimstrs(dim, label, unit, format)
  505.       character*(*) label, unit, format
  506.       integer len, dsigdis, dim
  507.  
  508.       dfsdgetdimstrs = dsigdis(dim, label, unit, format, len(label),
  509.      +   len(unit), len(format))
  510.  
  511.       return
  512.       end
  513.  
  514.  
  515. C------------------------------------------------------------------------------
  516. C Name:     dsgdist
  517. C Purpose:  return the label unit and format for the current SDGs 
  518. C Inputs:   
  519. C Returns:  -1 on failure with DFerror set
  520. C Users:    HDF Fortran programmers
  521. C Invokes:  dsinum
  522. C------------------------------------------------------------------------------
  523.  
  524.       integer function dsgdist(dim, label, unit, format)
  525.       character*(*) label, unit, format
  526.       integer len, dsigdis, dim
  527.  
  528.       dsgdist = dsigdis(dim, label, unit, format, len(label),
  529.      +   len(unit), len(format))
  530.  
  531.       return
  532.       end
  533.  
  534. C------------------------------------------------------------------------------
  535. C Name:     dsgdast
  536. C Purpose:  return the label unit and format for the current SDGs 
  537. C Inputs:   
  538. C Returns:  -1 on failure with DFerror set
  539. C Users:    HDF Fortran programmers
  540. C Invokes:  dsinum
  541. C------------------------------------------------------------------------------
  542.  
  543.       integer function dsgdast(label, unit, format, coordsys)
  544.       character*(*) label, unit, format, coordsys
  545.       integer len, dsigdas
  546.  
  547.       dsgdast = dsigdas(label, unit, format, coordsys, len(label),
  548.      +   len(unit), len(format), len(coordsys))
  549.  
  550.       return
  551.       end
  552.  
  553.