## GDF_READ_GILDAS

Subroutine gdf_read_gildas is the basic entry point to read a GILDAS data file into a GILDAS data structure. Based on the hx%gil%type_gdf code (previously set by an appropriate call to gildas_null or inherited by gdf_copy_header or gdf_transpose_header, it will perform different operations.

    interface
      subroutine gdf_read_gildas(hx,name,ext,error, rank, data)
        use image_def
        use gbl_message
        !-----------------------------------------------------------------
        ! @ public
        ! Read a Gildas Data File of name "name" and extention "ext"
        ! and return it into the "hx" Gildas data type.
        !
        ! Desired Form & Rank can be specified: an error will happen
        ! in case of mismatch.
        !-----------------------------------------------------------------
        type (gildas), intent(inout) :: hx    ! Gildas data type
        character(len=*), intent(in) :: name  ! Filename
        character(len=*), intent(in) :: ext   ! Extension
        logical, intent(out) :: error         ! Error flag
        integer, intent(in), optional :: rank
        logical, intent(in), optional :: data
      end subroutine gdf_read_gildas
    end interface

Read a GILDAS data set and (optionally) return data from it.

Optional argument data is a logical indicating whether the data is read (data=.true., which is the default) or only the header is read (data=.false.). The data is returned in the hx%XNd where X = r, d or i according to the data type, and N = 1-4 is the data rank. The array is allocated by the routine.

Optional argument rank=value indicates the desired rank of the result. value<0 means the image must have an intrinsic rank equal to -value. value>0 means that the data must be trimmed of its last, or extended by, (degenerate) dimensions to match the requested rank; an error is returned if not possible. value=0 means the header should take the rank from file, but the data should be returned as a 1D array.

Note: if preset on input, hx%gil%form indicates the desired type of values. An error will occur in case of mismatch: no conversion between real or integers is performed.

For UV data sets (in UVT or TUV order), it reads the header and the data according to the file layout.