subroutine matrd(im,g,dtype,iext,jext,pix,ipix,ier)

      integer*4 dtype
      integer*2 ipix(iext)
      dimension g(iext,jext), pix(iext)

      ier=0
      if ( dtype.eq.3 ) then
         do j=1, jext
            call IMGL2S (im, ipix, j, ier)
            do i=1, iext
               g(i,j)=ipix(i)
            end do
         end do
      else if ( dtype.eq.6 ) then
         do j=1, jext
            call IMGL2R (im, pix, j, ier)
            do i=1, iext
               g(i,j)=pix(i)
            end do
         end do
      else
	 ier=99
	 write(*,*) 'Data type is invalid !'
      end if

      return
      end