subroutine opninp (iarg,im,mode,image,title,dtype,iext,jext,ier,*)

      character*(*) image, title
      integer	    im, axlen(7), naxis, dtype, ier

      if ( iarg.ne.0 ) then
         call CLARGC (iarg, image, ier)
         if ( ier.ne.0 ) then
            write(*,'(''Enter         input  image name: '',$)')
            read (*,*) image
         end if
      end if

      call IMOPEN (image, mode, im, ier)
      if ( ier.ne.0 ) goto 999
      call IMACCK(im,'title',ier)
      if (ier .ne. 0) goto 999
      call IMGKWC(im,'title',title,ier)
      if (ier .ne. 0) goto 999
      write(*,'(''     Object :'',a)') title
      call IMGSIZ (im, axlen, naxis, dtype, ier)
      if ( ier.ne.0 ) go to 999
      iext=axlen(1)
      jext=axlen(2)
      write(*,'(''     Image size ='',i4,'' x'',i4)') iext, jext
      if      ( dtype.eq.3 ) then
          write(*,*) '     Data type: short integer'
      else if ( dtype.eq.4 ) then
          write(*,*) 
     +    '     Data type: integer (generally = long integer)'
      else if ( dtype.eq.5 ) then
          write(*,*) '     Data type: long integer'
      else if ( dtype.eq.6 ) then
          write(*,*) 
     +    '     Data type: single precision floating (real)'
      else if ( dtype.eq.7 ) then
          write(*,*) 
     +    '     Data type: double precision floating '
      else if ( dtype.eq.11 ) then
          write(*,*) 
     +    '     Data type: unsigned short integer '
      else
          write(*,*) 'Warning: data type invalid !'
      end if

      return

  999 return 1
      end