!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!  Structured Markov Chains Solver      [  SMCSolver  ]       !
!  Dario Bini, Beatrice Meini, Sergio Steffe'                 !
!  bini@dm.unipi.it, meini@dm.unipi.it, steffe@dm.unipi.it    !
!  Dipartimento di Matematica "Leonida Tonelli"               !
!  Largo Pontecorvo 5                                         !
!  56127 Pisa                                                 !
!  Italy                                                      !
!  Version 1.3 - March 2007                                   !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
!
module fi_int
interface
SUBROUTINE fi(A, doshift, method, eps, maxit, x0, G, drift, err)
integer,parameter::dp=kind(0.d0)
  REAL(dp), DIMENSION(:,:,:):: a
  REAL(dp), DIMENSION(:,:) :: g, x0
  REAL(dp) :: eps,err,drift
  integer :: method, maxit
  logical :: doshift
end SUBROUTINE fi
end interface

interface
SUBROUTINE fi_n(a,x0,eps,maxit,g,nverbose)
integer,parameter::dp=kind(0.d0)
  REAL(dp), DIMENSION(:,:,:):: a
  REAL(dp), DIMENSION(:,:) :: g, x0
  REAL(dp) :: eps
  integer :: nverbose,maxit
end SUBROUTINE fi_n
end interface
interface
SUBROUTINE fi_t(a,x0,eps,maxit,g,nverbose)
integer,parameter::dp=kind(0.d0)
  REAL(dp), DIMENSION(:,:,:):: a
  REAL(dp), DIMENSION(:,:) :: g, x0
  REAL(dp) :: eps
  integer :: nverbose,maxit
end SUBROUTINE fi_t
end interface
interface
SUBROUTINE fi_u(a,x0,eps,maxit,g,nverbose)
integer,parameter::dp=kind(0.d0)
  REAL(dp), DIMENSION(:,:,:):: a
  REAL(dp), DIMENSION(:,:) :: g, x0
  REAL(dp) :: eps
  integer :: nverbose,maxit
end SUBROUTINE fi_u
end interface
interface
SUBROUTINE gresidual(a,g,res)
integer,parameter::dp=kind(0.d0)
  REAL(dp), DIMENSION(:,:,:):: a
  REAL(dp), DIMENSION(:,:) :: g
  REAL(dp) :: res
end SUBROUTINE gresidual
end interface
end module fi_int
