!DEC$ FREEFORM

!
!  Copyright 2001 Compaq Computer Corporation
!  
!  Compaq and the Compaq logo Registered in U.S. Patent and Trademark
!  Office.
!  
!  Confidential computer software.  Valid license from Compaq required for
!  possession, use or copying.  Consistent with FAR 12.211 and 12.212,
!  Commerical Computer Software, Computer Software Documentation, and
!  Technical Data for Commmerical Items are licensed to the U.S. Government
!  under vendor's standard commerical license.
!

!DEC$ IF .NOT. DEFINED( __sparse_d_include )

   !DEC$ DEFINE __sparse_d_include

   !DEC$ IF DEFINED( _DLL )
      !DEC$ OBJCOMMENT LIB: "cxmldll.lib" 
   !DEC$ ELSE
      !DEC$ OBJCOMMENT LIB: "cxml.lib" 
   !DEC$ ENDIF

   INTERFACE
      SUBROUTINE dapply_diag_all(p,x,y,n)
         !DEC$ ATTRIBUTES DEFAULT :: dapply_diag_all
         REAL(KIND=8) :: p(*)
         REAL(KIND=8) :: x(*)
         REAL(KIND=8) :: y(*)
         INTEGER(KIND=4) :: n
      END SUBROUTINE dapply_diag_all
   END INTERFACE

   INTERFACE
      SUBROUTINE dapply_ilu_genr_l(job,plu,iplu,jplu,nz,x,y,n)
         !DEC$ ATTRIBUTES DEFAULT :: dapply_ilu_genr_l
         INTEGER(KIND=4) :: job
         REAL(KIND=8) :: plu(*)
         INTEGER(KIND=4) :: iplu(*)
         INTEGER(KIND=4) :: jplu(*)
         INTEGER(KIND=4) :: nz
         REAL(KIND=8) :: x(*)
         REAL(KIND=8) :: y(*)
         INTEGER(KIND=4) :: n
      END SUBROUTINE dapply_ilu_genr_l
   END INTERFACE

   INTERFACE
      SUBROUTINE dapply_ilu_genr_u(job,plu,iplu,jplu,nz,x,y,n)
         !DEC$ ATTRIBUTES DEFAULT :: dapply_ilu_genr_u
         INTEGER(KIND=4) :: job
         REAL(KIND=8) :: plu(*)
         INTEGER(KIND=4) :: iplu(*)
         INTEGER(KIND=4) :: jplu(*)
         INTEGER(KIND=4) :: nz
         REAL(KIND=8) :: x(*)
         REAL(KIND=8) :: y(*)
         INTEGER(KIND=4) :: n
      END SUBROUTINE dapply_ilu_genr_u
   END INTERFACE

   INTERFACE
      SUBROUTINE dapply_ilu_sdia(job,p,ip,ndim,nz,x,y,n)
         !DEC$ ATTRIBUTES DEFAULT :: dapply_ilu_sdia
         INTEGER(KIND=4) :: ndim
         INTEGER(KIND=4) :: job
         REAL(KIND=8) :: p(ndim,*)
         INTEGER(KIND=4) :: ip(*)
         INTEGER(KIND=4) :: nz
         REAL(KIND=8) :: x(*)
         REAL(KIND=8) :: y(*)
         INTEGER(KIND=4) :: n
      END SUBROUTINE dapply_ilu_sdia
   END INTERFACE

   INTERFACE
      SUBROUTINE dapply_ilu_udia_l(job,plu,iplu,ndim,nz,x,y,n)
         !DEC$ ATTRIBUTES DEFAULT :: dapply_ilu_udia_l
         INTEGER(KIND=4) :: ndim
         INTEGER(KIND=4) :: job
         REAL(KIND=8) :: plu(ndim,*)
         INTEGER(KIND=4) :: iplu(*)
         INTEGER(KIND=4) :: nz
         REAL(KIND=8) :: x(*)
         REAL(KIND=8) :: y(*)
         INTEGER(KIND=4) :: n
      END SUBROUTINE dapply_ilu_udia_l
   END INTERFACE

   INTERFACE
      SUBROUTINE dapply_ilu_udia_u(job,plu,iplu,ndim,nz,x,y,n)
         !DEC$ ATTRIBUTES DEFAULT :: dapply_ilu_udia_u
         INTEGER(KIND=4) :: ndim
         INTEGER(KIND=4) :: job
         REAL(KIND=8) :: plu(ndim,*)
         INTEGER(KIND=4) :: iplu(*)
         INTEGER(KIND=4) :: nz
         REAL(KIND=8) :: x(*)
         REAL(KIND=8) :: y(*)
         INTEGER(KIND=4) :: n
      END SUBROUTINE dapply_ilu_udia_u
   END INTERFACE

   INTERFACE
      SUBROUTINE dapply_poly_genr(job,p,a,ia,ja,nz,x,y,ndeg,n)
         !DEC$ ATTRIBUTES DEFAULT :: dapply_poly_genr
         INTEGER(KIND=4) :: job
         REAL(KIND=8) :: p(*)
         REAL(KIND=8) :: a(*)
         INTEGER(KIND=4) :: ia(*)
         INTEGER(KIND=4) :: ja(*)
         INTEGER(KIND=4) :: nz
         REAL(KIND=8) :: x(*)
         REAL(KIND=8) :: y(*)
         INTEGER(KIND=4) :: ndeg
         INTEGER(KIND=4) :: n
      END SUBROUTINE dapply_poly_genr
   END INTERFACE

   INTERFACE
      SUBROUTINE dapply_poly_sdia(job,p,a,ia,ndim,nz,x,y,ndeg,n)
         !DEC$ ATTRIBUTES DEFAULT :: dapply_poly_sdia
         INTEGER(KIND=4) :: ndim
         INTEGER(KIND=4) :: job
         REAL(KIND=8) :: p(*)
         REAL(KIND=8) :: a(ndim,*)
         INTEGER(KIND=4) :: ia(*)
         INTEGER(KIND=4) :: nz
         REAL(KIND=8) :: x(*)
         REAL(KIND=8) :: y(*)
         INTEGER(KIND=4) :: ndeg
         INTEGER(KIND=4) :: n
      END SUBROUTINE dapply_poly_sdia
   END INTERFACE

   INTERFACE
      SUBROUTINE dapply_poly_udia(job,p,a,ia,ndim,nz,x,y,ndeg,n)
         !DEC$ ATTRIBUTES DEFAULT :: dapply_poly_udia
         INTEGER(KIND=4) :: ndim
         INTEGER(KIND=4) :: job
         REAL(KIND=8) :: p(*)
         REAL(KIND=8) :: a(ndim,*)
         INTEGER(KIND=4) :: ia(*)
         INTEGER(KIND=4) :: nz
         REAL(KIND=8) :: x(*)
         REAL(KIND=8) :: y(*)
         INTEGER(KIND=4) :: ndeg
         INTEGER(KIND=4) :: n
      END SUBROUTINE dapply_poly_udia
   END INTERFACE

   INTERFACE
      SUBROUTINE dcreate_diag_genr(a,ia,ja,nz,p,n)
         !DEC$ ATTRIBUTES DEFAULT :: dcreate_diag_genr
         REAL(KIND=8) :: a(*)
         INTEGER(KIND=4) :: ia(*)
         INTEGER(KIND=4) :: ja(*)
         INTEGER(KIND=4) :: nz
         REAL(KIND=8) :: p(*)
         INTEGER(KIND=4) :: n
      END SUBROUTINE dcreate_diag_genr
   END INTERFACE

   INTERFACE
      SUBROUTINE dcreate_diag_sdia(a,ia,ndim,nz,p,n)
         !DEC$ ATTRIBUTES DEFAULT :: dcreate_diag_sdia
         INTEGER(KIND=4) :: ndim
         REAL(KIND=8) :: a(ndim,*)
         INTEGER(KIND=4) :: ia(*)
         INTEGER(KIND=4) :: nz
         REAL(KIND=8) :: p(*)
         INTEGER(KIND=4) :: n
      END SUBROUTINE dcreate_diag_sdia
   END INTERFACE

   INTERFACE
      SUBROUTINE dcreate_diag_udia(a,ia,ndim,nz,p,n)
         !DEC$ ATTRIBUTES DEFAULT :: dcreate_diag_udia
         INTEGER(KIND=4) :: ndim
         REAL(KIND=8) :: a(ndim,*)
         INTEGER(KIND=4) :: ia(*)
         INTEGER(KIND=4) :: nz
         REAL(KIND=8) :: p(*)
         INTEGER(KIND=4) :: n
      END SUBROUTINE dcreate_diag_udia
   END INTERFACE

   INTERFACE
      SUBROUTINE dcreate_ilu_genr(a,ia,ja,nz,plu,n)
         !DEC$ ATTRIBUTES DEFAULT :: dcreate_ilu_genr
         REAL(KIND=8) :: a(*)
         INTEGER(KIND=4) :: ia(*)
         INTEGER(KIND=4) :: ja(*)
         INTEGER(KIND=4) :: nz
         REAL(KIND=8) :: plu(*)
         INTEGER(KIND=4) :: n
      END SUBROUTINE dcreate_ilu_genr
   END INTERFACE

   INTERFACE
      SUBROUTINE dcreate_ilu_sdia(a,ia,ndim,nz,p,ip,n)
         !DEC$ ATTRIBUTES DEFAULT :: dcreate_ilu_sdia
         INTEGER(KIND=4) :: ndim
         REAL(KIND=8) :: a(ndim,*)
         INTEGER(KIND=4) :: ia(*)
         INTEGER(KIND=4) :: nz
         REAL(KIND=8) :: p(ndim,*)
         INTEGER(KIND=4) :: ip(*)
         INTEGER(KIND=4) :: n
      END SUBROUTINE dcreate_ilu_sdia
   END INTERFACE

   INTERFACE
      SUBROUTINE dcreate_ilu_udia(a,ia,ndim,nz,plu,iplu,n)
         !DEC$ ATTRIBUTES DEFAULT :: dcreate_ilu_udia
         INTEGER(KIND=4) :: ndim
         REAL(KIND=8) :: a(ndim,*)
         INTEGER(KIND=4) :: ia(*)
         INTEGER(KIND=4) :: nz
         REAL(KIND=8) :: plu(ndim,*)
         INTEGER(KIND=4) :: iplu(*)
         INTEGER(KIND=4) :: n
      END SUBROUTINE dcreate_ilu_udia
   END INTERFACE

   INTERFACE
      SUBROUTINE dcreate_poly_genr(a,ia,ja,nz,p,n)
         !DEC$ ATTRIBUTES DEFAULT :: dcreate_poly_genr
         REAL(KIND=8) :: a(*)
         INTEGER(KIND=4) :: ia(*)
         INTEGER(KIND=4) :: ja(*)
         INTEGER(KIND=4) :: nz
         REAL(KIND=8) :: p(*)
         INTEGER(KIND=4) :: n
      END SUBROUTINE dcreate_poly_genr
   END INTERFACE

   INTERFACE
      SUBROUTINE dcreate_poly_sdia(a,ia,ndim,nz,p,n)
         !DEC$ ATTRIBUTES DEFAULT :: dcreate_poly_sdia
         INTEGER(KIND=4) :: ndim
         REAL(KIND=8) :: a(ndim,*)
         INTEGER(KIND=4) :: ia(*)
         INTEGER(KIND=4) :: nz
         REAL(KIND=8) :: p(*)
         INTEGER(KIND=4) :: n
      END SUBROUTINE dcreate_poly_sdia
   END INTERFACE

   INTERFACE
      SUBROUTINE dcreate_poly_udia(a,ia,ndim,nz,p,n)
         !DEC$ ATTRIBUTES DEFAULT :: dcreate_poly_udia
         INTEGER(KIND=4) :: ndim
         REAL(KIND=8) :: a(ndim,*)
         INTEGER(KIND=4) :: ia(*)
         INTEGER(KIND=4) :: nz
         REAL(KIND=8) :: p(*)
         INTEGER(KIND=4) :: n
      END SUBROUTINE dcreate_poly_udia
   END INTERFACE

   INTERFACE
      SUBROUTINE ditsol_defaults(iparam,rparam)
         !DEC$ ATTRIBUTES DEFAULT :: ditsol_defaults
         INTEGER(KIND=4) :: iparam(*)
         REAL(KIND=8) :: rparam(*)
      END SUBROUTINE ditsol_defaults
   END INTERFACE

   INTERFACE
      SUBROUTINE dmatvec_driver(job,iparam,rparam,a,ia,w,x,y,n)
         !DEC$ ATTRIBUTES DEFAULT :: dmatvec_driver
         INTEGER(KIND=4) :: job
         INTEGER(KIND=4) :: iparam(*)
         REAL(KIND=8) :: rparam(*)
         REAL(KIND=8) :: a(*)
         INTEGER(KIND=4) :: ia(*)
         REAL(KIND=8) :: w(*)
         REAL(KIND=8) :: x(*)
         REAL(KIND=8) :: y(*)
         INTEGER(KIND=4) :: n
      END SUBROUTINE dmatvec_driver
   END INTERFACE

   INTERFACE
      SUBROUTINE dmatvec_genr(job,a,ia,ja,nz,w,x,y,n)
         !DEC$ ATTRIBUTES DEFAULT :: dmatvec_genr
         INTEGER(KIND=4) :: job
         REAL(KIND=8) :: a(*)
         INTEGER(KIND=4) :: ia(*)
         INTEGER(KIND=4) :: ja(*)
         INTEGER(KIND=4) :: nz
         REAL(KIND=8) :: w(*)
         REAL(KIND=8) :: x(*)
         REAL(KIND=8) :: y(*)
         INTEGER(KIND=4) :: n
      END SUBROUTINE dmatvec_genr
   END INTERFACE

   INTERFACE
      SUBROUTINE dmatvec_sdia(job,a,ia,ndim,nz,w,x,y,n)
         !DEC$ ATTRIBUTES DEFAULT :: dmatvec_sdia
         INTEGER(KIND=4) :: ndim
         INTEGER(KIND=4) :: job
         REAL(KIND=8) :: a(ndim,*)
         INTEGER(KIND=4) :: ia(*)
         INTEGER(KIND=4) :: nz
         REAL(KIND=8) :: w(*)
         REAL(KIND=8) :: x(*)
         REAL(KIND=8) :: y(*)
         INTEGER(KIND=4) :: n
      END SUBROUTINE dmatvec_sdia
   END INTERFACE

   INTERFACE
      SUBROUTINE dmatvec_udia(job,a,ia,ndim,nz,w,x,y,n)
         !DEC$ ATTRIBUTES DEFAULT :: dmatvec_udia
         INTEGER(KIND=4) :: ndim
         INTEGER(KIND=4) :: job
         REAL(KIND=8) :: a(ndim,*)
         INTEGER(KIND=4) :: ia(*)
         INTEGER(KIND=4) :: nz
         REAL(KIND=8) :: w(*)
         REAL(KIND=8) :: x(*)
         REAL(KIND=8) :: y(*)
         INTEGER(KIND=4) :: n
      END SUBROUTINE dmatvec_udia
   END INTERFACE

!DEC$ ENDIF
