@ -48,77 +48,78 @@ module mld_prec_mod
use mld_prec_type
use mld_prec_type
interface mld_precinit
interface mld_precinit
subroutine mld_sprecinit ( p , ptype , info , nlev )
! ! $ subroutine mld_sprecinit ( p , ptype , info , nlev )
use psb_base_mod , only : psb_s spmat_type , psb_desc_type , psb_spk_
! ! $ use psb_base_mod , only : psb_s _ sparse_ mat, psb_desc_type , psb_spk_
use mld_prec_type , only : mld_sprec_type
! ! $ use mld_prec_type , only : mld_sprec_type
type ( mld_sprec_type ) , intent ( inout ) :: p
! ! $ type ( mld_sprec_type ) , intent ( inout ) :: p
character ( len = * ) , intent ( in ) :: ptype
! ! $ character ( len = * ) , intent ( in ) :: ptype
integer , intent ( out ) :: info
! ! $ integer , intent ( out ) :: info
integer , optional , intent ( in ) :: nlev
! ! $ integer , optional , intent ( in ) :: nlev
end subroutine mld_sprecinit
! ! $ end subroutine mld_sprecinit
subroutine mld_dprecinit ( p , ptype , info , nlev )
subroutine mld_dprecinit ( p , ptype , info , nlev )
use psb_base_mod , only : psb_d spmat_type , psb_desc_type , psb_dpk_
use psb_base_mod , only : psb_d _ sparse_ mat, psb_desc_type , psb_dpk_
use mld_prec_type , only : mld_dprec_type
use mld_prec_type , only : mld_dprec_type
type ( mld_dprec_type ) , intent ( inout ) :: p
type ( mld_dprec_type ) , intent ( inout ) :: p
character ( len = * ) , intent ( in ) :: ptype
character ( len = * ) , intent ( in ) :: ptype
integer , intent ( out ) :: info
integer , intent ( out ) :: info
integer , optional , intent ( in ) :: nlev
integer , optional , intent ( in ) :: nlev
end subroutine mld_dprecinit
end subroutine mld_dprecinit
subroutine mld_cprecinit ( p , ptype , info , nlev )
! ! $ subroutine mld_cprecinit ( p , ptype , info , nlev )
use psb_base_mod , only : psb_c spmat_type , psb_desc_type , psb_spk_
! ! $ use psb_base_mod , only : psb_c _ sparse_ mat, psb_desc_type , psb_spk_
use mld_prec_type , only : mld_cprec_type
! ! $ use mld_prec_type , only : mld_cprec_type
type ( mld_cprec_type ) , intent ( inout ) :: p
! ! $ type ( mld_cprec_type ) , intent ( inout ) :: p
character ( len = * ) , intent ( in ) :: ptype
! ! $ character ( len = * ) , intent ( in ) :: ptype
integer , intent ( out ) :: info
! ! $ integer , intent ( out ) :: info
integer , optional , intent ( in ) :: nlev
! ! $ integer , optional , intent ( in ) :: nlev
end subroutine mld_cprecinit
! ! $ end subroutine mld_cprecinit
subroutine mld_zprecinit ( p , ptype , info , nlev )
! ! $ subroutine mld_zprecinit ( p , ptype , info , nlev )
use psb_base_mod , only : psb_z spmat_type , psb_desc_type , psb_dpk_
! ! $ use psb_base_mod , only : psb_z _ sparse_ mat, psb_desc_type , psb_dpk_
use mld_prec_type , only : mld_zprec_type
! ! $ use mld_prec_type , only : mld_zprec_type
type ( mld_zprec_type ) , intent ( inout ) :: p
! ! $ type ( mld_zprec_type ) , intent ( inout ) :: p
character ( len = * ) , intent ( in ) :: ptype
! ! $ character ( len = * ) , intent ( in ) :: ptype
integer , intent ( out ) :: info
! ! $ integer , intent ( out ) :: info
integer , optional , intent ( in ) :: nlev
! ! $ integer , optional , intent ( in ) :: nlev
end subroutine mld_zprecinit
! ! $ end subroutine mld_zprecinit
end interface
end interface
interface mld_precset
interface mld_precset
module procedure mld_i_sprecseti , mld_i_sprecsetc , mld_i_sprecsetr , &
module procedure mld_i_dprecseti , mld_i_dprecsetc , mld_i_dprecsetr
& mld_i_dprecseti , mld_i_dprecsetc , mld_i_dprecsetr , &
! ! $ module procedure mld_i_sprecseti , mld_i_sprecsetc , mld_i_sprecsetr , &
& mld_i_cprecseti , mld_i_cprecsetc , mld_i_cprecsetr , &
! ! $ & mld_i_dprecseti , mld_i_dprecsetc , mld_i_dprecsetr , &
& mld_i_zprecseti , mld_i_zprecsetc , mld_i_zprecsetr
! ! $ & mld_i_cprecseti , mld_i_cprecsetc , mld_i_cprecsetr , &
! ! $ & mld_i_zprecseti , mld_i_zprecsetc , mld_i_zprecsetr
end interface
end interface
interface mld_inner_precset
interface mld_inner_precset
subroutine mld_sprecseti ( p , what , val , info , ilev )
! ! $ subroutine mld_sprecseti ( p , what , val , info , ilev )
use psb_base_mod , only : psb_s spmat_type , psb_desc_type , psb_spk_
! ! $ use psb_base_mod , only : psb_s _ sparse_ mat, psb_desc_type , psb_spk_
use mld_prec_type , only : mld_sprec_type
! ! $ use mld_prec_type , only : mld_sprec_type
type ( mld_sprec_type ) , intent ( inout ) :: p
! ! $ type ( mld_sprec_type ) , intent ( inout ) :: p
integer , intent ( in ) :: what
! ! $ integer , intent ( in ) :: what
integer , intent ( in ) :: val
! ! $ integer , intent ( in ) :: val
integer , intent ( out ) :: info
! ! $ integer , intent ( out ) :: info
integer , optional , intent ( in ) :: ilev
! ! $ integer , optional , intent ( in ) :: ilev
end subroutine mld_sprecseti
! ! $ end subroutine mld_sprecseti
subroutine mld_sprecsetr ( p , what , val , info , ilev )
! ! $ subroutine mld_sprecsetr ( p , what , val , info , ilev )
use psb_base_mod , only : psb_s spmat_type , psb_desc_type , psb_spk_
! ! $ use psb_base_mod , only : psb_s _ sparse_ mat, psb_desc_type , psb_spk_
use mld_prec_type , only : mld_sprec_type
! ! $ use mld_prec_type , only : mld_sprec_type
type ( mld_sprec_type ) , intent ( inout ) :: p
! ! $ type ( mld_sprec_type ) , intent ( inout ) :: p
integer , intent ( in ) :: what
! ! $ integer , intent ( in ) :: what
real ( psb_spk_ ) , intent ( in ) :: val
! ! $ real ( psb_spk_ ) , intent ( in ) :: val
integer , intent ( out ) :: info
! ! $ integer , intent ( out ) :: info
integer , optional , intent ( in ) :: ilev
! ! $ integer , optional , intent ( in ) :: ilev
end subroutine mld_sprecsetr
! ! $ end subroutine mld_sprecsetr
subroutine mld_sprecsetc ( p , what , string , info , ilev )
! ! $ subroutine mld_sprecsetc ( p , what , string , info , ilev )
use psb_base_mod , only : psb_s spmat_type , psb_desc_type , psb_spk_
! ! $ use psb_base_mod , only : psb_s _ sparse_ mat, psb_desc_type , psb_spk_
use mld_prec_type , only : mld_sprec_type
! ! $ use mld_prec_type , only : mld_sprec_type
type ( mld_sprec_type ) , intent ( inout ) :: p
! ! $ type ( mld_sprec_type ) , intent ( inout ) :: p
integer , intent ( in ) :: what
! ! $ integer , intent ( in ) :: what
character ( len = * ) , intent ( in ) :: string
! ! $ character ( len = * ) , intent ( in ) :: string
integer , intent ( out ) :: info
! ! $ integer , intent ( out ) :: info
integer , optional , intent ( in ) :: ilev
! ! $ integer , optional , intent ( in ) :: ilev
end subroutine mld_sprecsetc
! ! $ end subroutine mld_sprecsetc
subroutine mld_dprecseti ( p , what , val , info , ilev )
subroutine mld_dprecseti ( p , what , val , info , ilev )
use psb_base_mod , only : psb_d spmat_type , psb_desc_type , psb_dpk_
use psb_base_mod , only : psb_d _ sparse_ mat, psb_desc_type , psb_dpk_
use mld_prec_type , only : mld_dprec_type
use mld_prec_type , only : mld_dprec_type
type ( mld_dprec_type ) , intent ( inout ) :: p
type ( mld_dprec_type ) , intent ( inout ) :: p
integer , intent ( in ) :: what
integer , intent ( in ) :: what
@ -127,7 +128,7 @@ module mld_prec_mod
integer , optional , intent ( in ) :: ilev
integer , optional , intent ( in ) :: ilev
end subroutine mld_dprecseti
end subroutine mld_dprecseti
subroutine mld_dprecsetr ( p , what , val , info , ilev )
subroutine mld_dprecsetr ( p , what , val , info , ilev )
use psb_base_mod , only : psb_d spmat_type , psb_desc_type , psb_dpk_
use psb_base_mod , only : psb_d _ sparse_ mat, psb_desc_type , psb_dpk_
use mld_prec_type , only : mld_dprec_type
use mld_prec_type , only : mld_dprec_type
type ( mld_dprec_type ) , intent ( inout ) :: p
type ( mld_dprec_type ) , intent ( inout ) :: p
integer , intent ( in ) :: what
integer , intent ( in ) :: what
@ -136,7 +137,7 @@ module mld_prec_mod
integer , optional , intent ( in ) :: ilev
integer , optional , intent ( in ) :: ilev
end subroutine mld_dprecsetr
end subroutine mld_dprecsetr
subroutine mld_dprecsetc ( p , what , string , info , ilev )
subroutine mld_dprecsetc ( p , what , string , info , ilev )
use psb_base_mod , only : psb_d spmat_type , psb_desc_type , psb_dpk_
use psb_base_mod , only : psb_d _ sparse_ mat, psb_desc_type , psb_dpk_
use mld_prec_type , only : mld_dprec_type
use mld_prec_type , only : mld_dprec_type
type ( mld_dprec_type ) , intent ( inout ) :: p
type ( mld_dprec_type ) , intent ( inout ) :: p
integer , intent ( in ) :: what
integer , intent ( in ) :: what
@ -144,181 +145,181 @@ module mld_prec_mod
integer , intent ( out ) :: info
integer , intent ( out ) :: info
integer , optional , intent ( in ) :: ilev
integer , optional , intent ( in ) :: ilev
end subroutine mld_dprecsetc
end subroutine mld_dprecsetc
subroutine mld_cprecseti ( p , what , val , info , ilev )
! ! $ subroutine mld_cprecseti ( p , what , val , info , ilev )
use psb_base_mod , only : psb_cspmat_type , psb_desc_type , psb_spk_
! ! $ use psb_base_mod , only : psb_c_sparse_mat , psb_desc_type , psb_spk_
use mld_prec_type , only : mld_cprec_type
! ! $ use mld_prec_type , only : mld_cprec_type
type ( mld_cprec_type ) , intent ( inout ) :: p
! ! $ type ( mld_cprec_type ) , intent ( inout ) :: p
integer , intent ( in ) :: what
! ! $ integer , intent ( in ) :: what
integer , intent ( in ) :: val
! ! $ integer , intent ( in ) :: val
integer , intent ( out ) :: info
! ! $ integer , intent ( out ) :: info
integer , optional , intent ( in ) :: ilev
! ! $ integer , optional , intent ( in ) :: ilev
end subroutine mld_cprecseti
! ! $ end subroutine mld_cprecseti
subroutine mld_cprecsetr ( p , what , val , info , ilev )
! ! $ subroutine mld_cprecsetr ( p , what , val , info , ilev )
use psb_base_mod , only : psb_cspmat_type , psb_desc_type , psb_spk_
! ! $ use psb_base_mod , only : psb_c_sparse_mat , psb_desc_type , psb_spk_
use mld_prec_type , only : mld_cprec_type
! ! $ use mld_prec_type , only : mld_cprec_type
type ( mld_cprec_type ) , intent ( inout ) :: p
! ! $ type ( mld_cprec_type ) , intent ( inout ) :: p
integer , intent ( in ) :: what
! ! $ integer , intent ( in ) :: what
real ( psb_spk_ ) , intent ( in ) :: val
! ! $ real ( psb_spk_ ) , intent ( in ) :: val
integer , intent ( out ) :: info
! ! $ integer , intent ( out ) :: info
integer , optional , intent ( in ) :: ilev
! ! $ integer , optional , intent ( in ) :: ilev
end subroutine mld_cprecsetr
! ! $ end subroutine mld_cprecsetr
subroutine mld_cprecsetc ( p , what , string , info , ilev )
! ! $ subroutine mld_cprecsetc ( p , what , string , info , ilev )
use psb_base_mod , only : psb_cspmat_type , psb_desc_type , psb_spk_
! ! $ use psb_base_mod , only : psb_c_sparse_mat , psb_desc_type , psb_spk_
use mld_prec_type , only : mld_cprec_type
! ! $ use mld_prec_type , only : mld_cprec_type
type ( mld_cprec_type ) , intent ( inout ) :: p
! ! $ type ( mld_cprec_type ) , intent ( inout ) :: p
integer , intent ( in ) :: what
! ! $ integer , intent ( in ) :: what
character ( len = * ) , intent ( in ) :: string
! ! $ character ( len = * ) , intent ( in ) :: string
integer , intent ( out ) :: info
! ! $ integer , intent ( out ) :: info
integer , optional , intent ( in ) :: ilev
! ! $ integer , optional , intent ( in ) :: ilev
end subroutine mld_cprecsetc
! ! $ end subroutine mld_cprecsetc
subroutine mld_zprecseti ( p , what , val , info , ilev )
! ! $ subroutine mld_zprecseti ( p , what , val , info , ilev )
use psb_base_mod , only : psb_zspmat_type , psb_desc_type , psb_dpk_
! ! $ use psb_base_mod , only : psb_z_sparse_mat , psb_desc_type , psb_dpk_
use mld_prec_type , only : mld_zprec_type
! ! $ use mld_prec_type , only : mld_zprec_type
type ( mld_zprec_type ) , intent ( inout ) :: p
! ! $ type ( mld_zprec_type ) , intent ( inout ) :: p
integer , intent ( in ) :: what
! ! $ integer , intent ( in ) :: what
integer , intent ( in ) :: val
! ! $ integer , intent ( in ) :: val
integer , intent ( out ) :: info
! ! $ integer , intent ( out ) :: info
integer , optional , intent ( in ) :: ilev
! ! $ integer , optional , intent ( in ) :: ilev
end subroutine mld_zprecseti
! ! $ end subroutine mld_zprecseti
subroutine mld_zprecsetr ( p , what , val , info , ilev )
! ! $ subroutine mld_zprecsetr ( p , what , val , info , ilev )
use psb_base_mod , only : psb_zspmat_type , psb_desc_type , psb_dpk_
! ! $ use psb_base_mod , only : psb_z_sparse_mat , psb_desc_type , psb_dpk_
use mld_prec_type , only : mld_zprec_type
! ! $ use mld_prec_type , only : mld_zprec_type
type ( mld_zprec_type ) , intent ( inout ) :: p
! ! $ type ( mld_zprec_type ) , intent ( inout ) :: p
integer , intent ( in ) :: what
! ! $ integer , intent ( in ) :: what
real ( psb_dpk_ ) , intent ( in ) :: val
! ! $ real ( psb_dpk_ ) , intent ( in ) :: val
integer , intent ( out ) :: info
! ! $ integer , intent ( out ) :: info
integer , optional , intent ( in ) :: ilev
! ! $ integer , optional , intent ( in ) :: ilev
end subroutine mld_zprecsetr
! ! $ end subroutine mld_zprecsetr
subroutine mld_zprecsetc ( p , what , string , info , ilev )
! ! $ subroutine mld_zprecsetc ( p , what , string , info , ilev )
use psb_base_mod , only : psb_zspmat_type , psb_desc_type , psb_dpk_
! ! $ use psb_base_mod , only : psb_z_sparse_mat , psb_desc_type , psb_dpk_
use mld_prec_type , only : mld_zprec_type
! ! $ use mld_prec_type , only : mld_zprec_type
type ( mld_zprec_type ) , intent ( inout ) :: p
! ! $ type ( mld_zprec_type ) , intent ( inout ) :: p
integer , intent ( in ) :: what
! ! $ integer , intent ( in ) :: what
character ( len = * ) , intent ( in ) :: string
! ! $ character ( len = * ) , intent ( in ) :: string
integer , intent ( out ) :: info
! ! $ integer , intent ( out ) :: info
integer , optional , intent ( in ) :: ilev
! ! $ integer , optional , intent ( in ) :: ilev
end subroutine mld_zprecsetc
! ! $ end subroutine mld_zprecsetc
end interface
interface mld_precaply
subroutine mld_sprecaply ( prec , x , y , desc_data , info , trans , work )
use psb_base_mod , only : psb_sspmat_type , psb_desc_type , psb_spk_
use mld_prec_type , only : mld_sprec_type
type ( psb_desc_type ) , intent ( in ) :: desc_data
type ( mld_sprec_type ) , intent ( in ) :: prec
real ( psb_spk_ ) , intent ( in ) :: x ( : )
real ( psb_spk_ ) , intent ( inout ) :: y ( : )
integer , intent ( out ) :: info
character ( len = 1 ) , optional :: trans
real ( psb_spk_ ) , intent ( inout ) , optional , target :: work ( : )
end subroutine mld_sprecaply
subroutine mld_sprecaply1 ( prec , x , desc_data , info , trans )
use psb_base_mod , only : psb_sspmat_type , psb_desc_type , psb_spk_
use mld_prec_type , only : mld_sprec_type
type ( psb_desc_type ) , intent ( in ) :: desc_data
type ( mld_sprec_type ) , intent ( in ) :: prec
real ( psb_spk_ ) , intent ( inout ) :: x ( : )
integer , intent ( out ) :: info
character ( len = 1 ) , optional :: trans
end subroutine mld_sprecaply1
subroutine mld_dprecaply ( prec , x , y , desc_data , info , trans , work )
use psb_base_mod , only : psb_dspmat_type , psb_desc_type , psb_dpk_
use mld_prec_type , only : mld_dprec_type
type ( psb_desc_type ) , intent ( in ) :: desc_data
type ( mld_dprec_type ) , intent ( in ) :: prec
real ( psb_dpk_ ) , intent ( in ) :: x ( : )
real ( psb_dpk_ ) , intent ( inout ) :: y ( : )
integer , intent ( out ) :: info
character ( len = 1 ) , optional :: trans
real ( psb_dpk_ ) , intent ( inout ) , optional , target :: work ( : )
end subroutine mld_dprecaply
subroutine mld_dprecaply1 ( prec , x , desc_data , info , trans )
use psb_base_mod , only : psb_dspmat_type , psb_desc_type , psb_dpk_
use mld_prec_type , only : mld_dprec_type
type ( psb_desc_type ) , intent ( in ) :: desc_data
type ( mld_dprec_type ) , intent ( in ) :: prec
real ( psb_dpk_ ) , intent ( inout ) :: x ( : )
integer , intent ( out ) :: info
character ( len = 1 ) , optional :: trans
end subroutine mld_dprecaply1
subroutine mld_cprecaply ( prec , x , y , desc_data , info , trans , work )
use psb_base_mod , only : psb_cspmat_type , psb_desc_type , psb_spk_
use mld_prec_type , only : mld_cprec_type
type ( psb_desc_type ) , intent ( in ) :: desc_data
type ( mld_cprec_type ) , intent ( in ) :: prec
complex ( psb_spk_ ) , intent ( in ) :: x ( : )
complex ( psb_spk_ ) , intent ( inout ) :: y ( : )
integer , intent ( out ) :: info
character ( len = 1 ) , optional :: trans
complex ( psb_spk_ ) , intent ( inout ) , optional , target :: work ( : )
end subroutine mld_cprecaply
subroutine mld_cprecaply1 ( prec , x , desc_data , info , trans )
use psb_base_mod , only : psb_cspmat_type , psb_desc_type , psb_spk_
use mld_prec_type , only : mld_cprec_type
type ( psb_desc_type ) , intent ( in ) :: desc_data
type ( mld_cprec_type ) , intent ( in ) :: prec
complex ( psb_spk_ ) , intent ( inout ) :: x ( : )
integer , intent ( out ) :: info
character ( len = 1 ) , optional :: trans
end subroutine mld_cprecaply1
subroutine mld_zprecaply ( prec , x , y , desc_data , info , trans , work )
use psb_base_mod , only : psb_zspmat_type , psb_desc_type , psb_dpk_
use mld_prec_type , only : mld_zprec_type
type ( psb_desc_type ) , intent ( in ) :: desc_data
type ( mld_zprec_type ) , intent ( in ) :: prec
complex ( psb_dpk_ ) , intent ( in ) :: x ( : )
complex ( psb_dpk_ ) , intent ( inout ) :: y ( : )
integer , intent ( out ) :: info
character ( len = 1 ) , optional :: trans
complex ( psb_dpk_ ) , intent ( inout ) , optional , target :: work ( : )
end subroutine mld_zprecaply
subroutine mld_zprecaply1 ( prec , x , desc_data , info , trans )
use psb_base_mod , only : psb_zspmat_type , psb_desc_type , psb_dpk_
use mld_prec_type , only : mld_zprec_type
type ( psb_desc_type ) , intent ( in ) :: desc_data
type ( mld_zprec_type ) , intent ( in ) :: prec
complex ( psb_dpk_ ) , intent ( inout ) :: x ( : )
integer , intent ( out ) :: info
character ( len = 1 ) , optional :: trans
end subroutine mld_zprecaply1
end interface
end interface
! ! $
! ! $ interface mld_precaply
! ! $ subroutine mld_sprecaply ( prec , x , y , desc_data , info , trans , work )
! ! $ use psb_base_mod , only : psb_s_sparse_mat , psb_desc_type , psb_spk_
! ! $ use mld_prec_type , only : mld_sprec_type
! ! $ type ( psb_desc_type ) , intent ( in ) :: desc_data
! ! $ type ( mld_sprec_type ) , intent ( in ) :: prec
! ! $ real ( psb_spk_ ) , intent ( in ) :: x ( : )
! ! $ real ( psb_spk_ ) , intent ( inout ) :: y ( : )
! ! $ integer , intent ( out ) :: info
! ! $ character ( len = 1 ) , optional :: trans
! ! $ real ( psb_spk_ ) , intent ( inout ) , optional , target :: work ( : )
! ! $ end subroutine mld_sprecaply
! ! $ subroutine mld_sprecaply1 ( prec , x , desc_data , info , trans )
! ! $ use psb_base_mod , only : psb_s_sparse_mat , psb_desc_type , psb_spk_
! ! $ use mld_prec_type , only : mld_sprec_type
! ! $ type ( psb_desc_type ) , intent ( in ) :: desc_data
! ! $ type ( mld_sprec_type ) , intent ( in ) :: prec
! ! $ real ( psb_spk_ ) , intent ( inout ) :: x ( : )
! ! $ integer , intent ( out ) :: info
! ! $ character ( len = 1 ) , optional :: trans
! ! $ end subroutine mld_sprecaply1
! ! $ subroutine mld_dprecaply ( prec , x , y , desc_data , info , trans , work )
! ! $ use psb_base_mod , only : psb_d_sparse_mat , psb_desc_type , psb_dpk_
! ! $ use mld_prec_type , only : mld_dprec_type
! ! $ type ( psb_desc_type ) , intent ( in ) :: desc_data
! ! $ type ( mld_dprec_type ) , intent ( in ) :: prec
! ! $ real ( psb_dpk_ ) , intent ( in ) :: x ( : )
! ! $ real ( psb_dpk_ ) , intent ( inout ) :: y ( : )
! ! $ integer , intent ( out ) :: info
! ! $ character ( len = 1 ) , optional :: trans
! ! $ real ( psb_dpk_ ) , intent ( inout ) , optional , target :: work ( : )
! ! $ end subroutine mld_dprecaply
! ! $ subroutine mld_dprecaply1 ( prec , x , desc_data , info , trans )
! ! $ use psb_base_mod , only : psb_d_sparse_mat , psb_desc_type , psb_dpk_
! ! $ use mld_prec_type , only : mld_dprec_type
! ! $ type ( psb_desc_type ) , intent ( in ) :: desc_data
! ! $ type ( mld_dprec_type ) , intent ( in ) :: prec
! ! $ real ( psb_dpk_ ) , intent ( inout ) :: x ( : )
! ! $ integer , intent ( out ) :: info
! ! $ character ( len = 1 ) , optional :: trans
! ! $ end subroutine mld_dprecaply1
! ! $ subroutine mld_cprecaply ( prec , x , y , desc_data , info , trans , work )
! ! $ use psb_base_mod , only : psb_c_sparse_mat , psb_desc_type , psb_spk_
! ! $ use mld_prec_type , only : mld_cprec_type
! ! $ type ( psb_desc_type ) , intent ( in ) :: desc_data
! ! $ type ( mld_cprec_type ) , intent ( in ) :: prec
! ! $ complex ( psb_spk_ ) , intent ( in ) :: x ( : )
! ! $ complex ( psb_spk_ ) , intent ( inout ) :: y ( : )
! ! $ integer , intent ( out ) :: info
! ! $ character ( len = 1 ) , optional :: trans
! ! $ complex ( psb_spk_ ) , intent ( inout ) , optional , target :: work ( : )
! ! $ end subroutine mld_cprecaply
! ! $ subroutine mld_cprecaply1 ( prec , x , desc_data , info , trans )
! ! $ use psb_base_mod , only : psb_c_sparse_mat , psb_desc_type , psb_spk_
! ! $ use mld_prec_type , only : mld_cprec_type
! ! $ type ( psb_desc_type ) , intent ( in ) :: desc_data
! ! $ type ( mld_cprec_type ) , intent ( in ) :: prec
! ! $ complex ( psb_spk_ ) , intent ( inout ) :: x ( : )
! ! $ integer , intent ( out ) :: info
! ! $ character ( len = 1 ) , optional :: trans
! ! $ end subroutine mld_cprecaply1
! ! $ subroutine mld_zprecaply ( prec , x , y , desc_data , info , trans , work )
! ! $ use psb_base_mod , only : psb_z_sparse_mat , psb_desc_type , psb_dpk_
! ! $ use mld_prec_type , only : mld_zprec_type
! ! $ type ( psb_desc_type ) , intent ( in ) :: desc_data
! ! $ type ( mld_zprec_type ) , intent ( in ) :: prec
! ! $ complex ( psb_dpk_ ) , intent ( in ) :: x ( : )
! ! $ complex ( psb_dpk_ ) , intent ( inout ) :: y ( : )
! ! $ integer , intent ( out ) :: info
! ! $ character ( len = 1 ) , optional :: trans
! ! $ complex ( psb_dpk_ ) , intent ( inout ) , optional , target :: work ( : )
! ! $ end subroutine mld_zprecaply
! ! $ subroutine mld_zprecaply1 ( prec , x , desc_data , info , trans )
! ! $ use psb_base_mod , only : psb_z_sparse_mat , psb_desc_type , psb_dpk_
! ! $ use mld_prec_type , only : mld_zprec_type
! ! $ type ( psb_desc_type ) , intent ( in ) :: desc_data
! ! $ type ( mld_zprec_type ) , intent ( in ) :: prec
! ! $ complex ( psb_dpk_ ) , intent ( inout ) :: x ( : )
! ! $ integer , intent ( out ) :: info
! ! $ character ( len = 1 ) , optional :: trans
! ! $ end subroutine mld_zprecaply1
! ! $ end interface
! ! $
interface mld_precbld
interface mld_precbld
subroutine mld_sprecbld ( a , desc_a , prec , info )
subroutine mld_sprecbld ( a , desc_a , prec , info )
use psb_base_mod , only : psb_sspmat_type , psb_desc_type , psb_spk_
use psb_base_mod , only : psb_s _ sparse_ mat, psb_desc_type , psb_spk_
use mld_prec_type , only : mld_sprec_type
use mld_prec_type , only : mld_sprec_type
implicit none
implicit none
type ( psb_sspmat_type ) , intent ( in ) , target :: a
type ( psb_s _ sparse_ mat) , intent ( in ) , target :: a
type ( psb_desc_type ) , intent ( in ) , target :: desc_a
type ( psb_desc_type ) , intent ( in ) , target :: desc_a
type ( mld_sprec_type ) , intent ( inout ) , target :: prec
type ( mld_sprec_type ) , intent ( inout ) , target :: prec
integer , intent ( out ) :: info
integer , intent ( out ) :: info
! ! $ character , intent ( in ) , optional :: upd
! ! $ character , intent ( in ) , optional :: upd
end subroutine mld_sprecbld
end subroutine mld_sprecbld
subroutine mld_dprecbld ( a , desc_a , prec , info )
subroutine mld_dprecbld ( a , desc_a , prec , info )
use psb_base_mod , only : psb_dspmat_type , psb_desc_type , psb_dpk_
use psb_base_mod , only : psb_d _ sparse_ mat, psb_desc_type , psb_dpk_
use mld_prec_type , only : mld_dprec_type
use mld_prec_type , only : mld_dprec_type
implicit none
implicit none
type ( psb_dspmat_type ) , intent ( in ) , target :: a
type ( psb_d _ sparse_ mat) , intent ( in ) , target :: a
type ( psb_desc_type ) , intent ( in ) , target :: desc_a
type ( psb_desc_type ) , intent ( in ) , target :: desc_a
type ( mld_dprec_type ) , intent ( inout ) , target :: prec
type ( mld_dprec_type ) , intent ( inout ) , target :: prec
integer , intent ( out ) :: info
integer , intent ( out ) :: info
! ! $ character , intent ( in ) , optional :: upd
! ! $ character , intent ( in ) , optional :: upd
end subroutine mld_dprecbld
end subroutine mld_dprecbld
subroutine mld_cprecbld ( a , desc_a , prec , info )
subroutine mld_cprecbld ( a , desc_a , prec , info )
use psb_base_mod , only : psb_cspmat_type , psb_desc_type , psb_spk_
use psb_base_mod , only : psb_c _ sparse_ mat, psb_desc_type , psb_spk_
use mld_prec_type , only : mld_cprec_type
use mld_prec_type , only : mld_cprec_type
implicit none
implicit none
type ( psb_cspmat_type ) , intent ( in ) , target :: a
type ( psb_c _ sparse_ mat) , intent ( in ) , target :: a
type ( psb_desc_type ) , intent ( in ) , target :: desc_a
type ( psb_desc_type ) , intent ( in ) , target :: desc_a
type ( mld_cprec_type ) , intent ( inout ) , target :: prec
type ( mld_cprec_type ) , intent ( inout ) , target :: prec
integer , intent ( out ) :: info
integer , intent ( out ) :: info
! ! $ character , intent ( in ) , optional :: upd
! ! $ character , intent ( in ) , optional :: upd
end subroutine mld_cprecbld
end subroutine mld_cprecbld
subroutine mld_zprecbld ( a , desc_a , prec , info )
subroutine mld_zprecbld ( a , desc_a , prec , info )
use psb_base_mod , only : psb_zspmat_type , psb_desc_type , psb_dpk_
use psb_base_mod , only : psb_z _ sparse_ mat, psb_desc_type , psb_dpk_
use mld_prec_type , only : mld_zprec_type
use mld_prec_type , only : mld_zprec_type
implicit none
implicit none
type ( psb_zspmat_type ) , intent ( in ) , target :: a
type ( psb_z _ sparse_ mat) , intent ( in ) , target :: a
type ( psb_desc_type ) , intent ( in ) , target :: desc_a
type ( psb_desc_type ) , intent ( in ) , target :: desc_a
type ( mld_zprec_type ) , intent ( inout ) :: prec
type ( mld_zprec_type ) , intent ( inout ) :: prec
integer , intent ( out ) :: info
integer , intent ( out ) :: info
@ -328,41 +329,41 @@ module mld_prec_mod
contains
contains
subroutine mld_i_sprecseti ( p , what , val , info )
! ! $ subroutine mld_i_sprecseti ( p , what , val , info )
use psb_base_mod , only : psb_s spmat_type , psb_desc_type , psb_spk_
! ! $ use psb_base_mod , only : psb_s _ sparse_ mat, psb_desc_type , psb_spk_
use mld_prec_type , only : mld_sprec_type
! ! $ use mld_prec_type , only : mld_sprec_type
type ( mld_sprec_type ) , intent ( inout ) :: p
! ! $ type ( mld_sprec_type ) , intent ( inout ) :: p
integer , intent ( in ) :: what
! ! $ integer , intent ( in ) :: what
integer , intent ( in ) :: val
! ! $ integer , intent ( in ) :: val
integer , intent ( out ) :: info
! ! $ integer , intent ( out ) :: info
! ! $
call mld_inner_precset ( p , what , val , info )
! ! $ call mld_inner_precset ( p , what , val , info )
end subroutine mld_i_sprecseti
! ! $ end subroutine mld_i_sprecseti
! ! $
subroutine mld_i_sprecsetr ( p , what , val , info )
! ! $ subroutine mld_i_sprecsetr ( p , what , val , info )
use psb_base_mod , only : psb_s spmat_type , psb_desc_type , psb_spk_
! ! $ use psb_base_mod , only : psb_s _ sparse_ mat, psb_desc_type , psb_spk_
use mld_prec_type , only : mld_sprec_type
! ! $ use mld_prec_type , only : mld_sprec_type
type ( mld_sprec_type ) , intent ( inout ) :: p
! ! $ type ( mld_sprec_type ) , intent ( inout ) :: p
integer , intent ( in ) :: what
! ! $ integer , intent ( in ) :: what
real ( psb_spk_ ) , intent ( in ) :: val
! ! $ real ( psb_spk_ ) , intent ( in ) :: val
integer , intent ( out ) :: info
! ! $ integer , intent ( out ) :: info
! ! $
call mld_inner_precset ( p , what , val , info )
! ! $ call mld_inner_precset ( p , what , val , info )
end subroutine mld_i_sprecsetr
! ! $ end subroutine mld_i_sprecsetr
! ! $
subroutine mld_i_sprecsetc ( p , what , val , info )
! ! $ subroutine mld_i_sprecsetc ( p , what , val , info )
use psb_base_mod , only : psb_s spmat_type , psb_desc_type , psb_spk_
! ! $ use psb_base_mod , only : psb_s _ sparse_ mat, psb_desc_type , psb_spk_
use mld_prec_type , only : mld_sprec_type
! ! $ use mld_prec_type , only : mld_sprec_type
type ( mld_sprec_type ) , intent ( inout ) :: p
! ! $ type ( mld_sprec_type ) , intent ( inout ) :: p
integer , intent ( in ) :: what
! ! $ integer , intent ( in ) :: what
character ( len = * ) , intent ( in ) :: val
! ! $ character ( len = * ) , intent ( in ) :: val
integer , intent ( out ) :: info
! ! $ integer , intent ( out ) :: info
! ! $
call mld_inner_precset ( p , what , val , info )
! ! $ call mld_inner_precset ( p , what , val , info )
end subroutine mld_i_sprecsetc
! ! $ end subroutine mld_i_sprecsetc
subroutine mld_i_dprecseti ( p , what , val , info )
subroutine mld_i_dprecseti ( p , what , val , info )
use psb_base_mod , only : psb_d spmat_type , psb_desc_type , psb_dpk_
use psb_base_mod , only : psb_d _ sparse_ mat, psb_desc_type , psb_dpk_
use mld_prec_type , only : mld_dprec_type
use mld_prec_type , only : mld_dprec_type
type ( mld_dprec_type ) , intent ( inout ) :: p
type ( mld_dprec_type ) , intent ( inout ) :: p
integer , intent ( in ) :: what
integer , intent ( in ) :: what
@ -373,7 +374,7 @@ contains
end subroutine mld_i_dprecseti
end subroutine mld_i_dprecseti
subroutine mld_i_dprecsetr ( p , what , val , info )
subroutine mld_i_dprecsetr ( p , what , val , info )
use psb_base_mod , only : psb_d spmat_type , psb_desc_type , psb_dpk_
use psb_base_mod , only : psb_d _ sparse_ mat, psb_desc_type , psb_dpk_
use mld_prec_type , only : mld_dprec_type
use mld_prec_type , only : mld_dprec_type
type ( mld_dprec_type ) , intent ( inout ) :: p
type ( mld_dprec_type ) , intent ( inout ) :: p
integer , intent ( in ) :: what
integer , intent ( in ) :: what
@ -384,7 +385,7 @@ contains
end subroutine mld_i_dprecsetr
end subroutine mld_i_dprecsetr
subroutine mld_i_dprecsetc ( p , what , val , info )
subroutine mld_i_dprecsetc ( p , what , val , info )
use psb_base_mod , only : psb_d spmat_type , psb_desc_type , psb_dpk_
use psb_base_mod , only : psb_d _ sparse_ mat, psb_desc_type , psb_dpk_
use mld_prec_type , only : mld_dprec_type
use mld_prec_type , only : mld_dprec_type
type ( mld_dprec_type ) , intent ( inout ) :: p
type ( mld_dprec_type ) , intent ( inout ) :: p
integer , intent ( in ) :: what
integer , intent ( in ) :: what
@ -394,72 +395,72 @@ contains
call mld_inner_precset ( p , what , val , info )
call mld_inner_precset ( p , what , val , info )
end subroutine mld_i_dprecsetc
end subroutine mld_i_dprecsetc
subroutine mld_i_cprecseti ( p , what , val , info )
! ! $ subroutine mld_i_cprecseti ( p , what , val , info )
use psb_base_mod , only : psb_c spmat_type , psb_desc_type , psb_spk_
! ! $ use psb_base_mod , only : psb_c _ sparse_ mat, psb_desc_type , psb_spk_
use mld_prec_type , only : mld_cprec_type
! ! $ use mld_prec_type , only : mld_cprec_type
type ( mld_cprec_type ) , intent ( inout ) :: p
! ! $ type ( mld_cprec_type ) , intent ( inout ) :: p
integer , intent ( in ) :: what
! ! $ integer , intent ( in ) :: what
integer , intent ( in ) :: val
! ! $ integer , intent ( in ) :: val
integer , intent ( out ) :: info
! ! $ integer , intent ( out ) :: info
! ! $
call mld_inner_precset ( p , what , val , info )
! ! $ call mld_inner_precset ( p , what , val , info )
end subroutine mld_i_cprecseti
! ! $ end subroutine mld_i_cprecseti
! ! $
subroutine mld_i_cprecsetr ( p , what , val , info )
! ! $ subroutine mld_i_cprecsetr ( p , what , val , info )
use psb_base_mod , only : psb_c spmat_type , psb_desc_type , psb_spk_
! ! $ use psb_base_mod , only : psb_c _ sparse_ mat, psb_desc_type , psb_spk_
use mld_prec_type , only : mld_cprec_type
! ! $ use mld_prec_type , only : mld_cprec_type
type ( mld_cprec_type ) , intent ( inout ) :: p
! ! $ type ( mld_cprec_type ) , intent ( inout ) :: p
integer , intent ( in ) :: what
! ! $ integer , intent ( in ) :: what
real ( psb_spk_ ) , intent ( in ) :: val
! ! $ real ( psb_spk_ ) , intent ( in ) :: val
integer , intent ( out ) :: info
! ! $ integer , intent ( out ) :: info
! ! $
call mld_inner_precset ( p , what , val , info )
! ! $ call mld_inner_precset ( p , what , val , info )
end subroutine mld_i_cprecsetr
! ! $ end subroutine mld_i_cprecsetr
! ! $
subroutine mld_i_cprecsetc ( p , what , val , info )
! ! $ subroutine mld_i_cprecsetc ( p , what , val , info )
use psb_base_mod , only : psb_c spmat_type , psb_desc_type , psb_spk_
! ! $ use psb_base_mod , only : psb_c _ sparse_ mat, psb_desc_type , psb_spk_
use mld_prec_type , only : mld_cprec_type
! ! $ use mld_prec_type , only : mld_cprec_type
type ( mld_cprec_type ) , intent ( inout ) :: p
! ! $ type ( mld_cprec_type ) , intent ( inout ) :: p
integer , intent ( in ) :: what
! ! $ integer , intent ( in ) :: what
character ( len = * ) , intent ( in ) :: val
! ! $ character ( len = * ) , intent ( in ) :: val
integer , intent ( out ) :: info
! ! $ integer , intent ( out ) :: info
! ! $
call mld_inner_precset ( p , what , val , info )
! ! $ call mld_inner_precset ( p , what , val , info )
end subroutine mld_i_cprecsetc
! ! $ end subroutine mld_i_cprecsetc
! ! $
subroutine mld_i_zprecseti ( p , what , val , info )
! ! $ subroutine mld_i_zprecseti ( p , what , val , info )
use psb_base_mod , only : psb_z spmat_type , psb_desc_type , psb_dpk_
! ! $ use psb_base_mod , only : psb_z _ sparse_ mat, psb_desc_type , psb_dpk_
use mld_prec_type , only : mld_zprec_type
! ! $ use mld_prec_type , only : mld_zprec_type
type ( mld_zprec_type ) , intent ( inout ) :: p
! ! $ type ( mld_zprec_type ) , intent ( inout ) :: p
integer , intent ( in ) :: what
! ! $ integer , intent ( in ) :: what
integer , intent ( in ) :: val
! ! $ integer , intent ( in ) :: val
integer , intent ( out ) :: info
! ! $ integer , intent ( out ) :: info
! ! $
call mld_inner_precset ( p , what , val , info )
! ! $ call mld_inner_precset ( p , what , val , info )
end subroutine mld_i_zprecseti
! ! $ end subroutine mld_i_zprecseti
! ! $
subroutine mld_i_zprecsetr ( p , what , val , info )
! ! $ subroutine mld_i_zprecsetr ( p , what , val , info )
use psb_base_mod , only : psb_z spmat_type , psb_desc_type , psb_dpk_
! ! $ use psb_base_mod , only : psb_z _ sparse_ mat, psb_desc_type , psb_dpk_
use mld_prec_type , only : mld_zprec_type
! ! $ use mld_prec_type , only : mld_zprec_type
type ( mld_zprec_type ) , intent ( inout ) :: p
! ! $ type ( mld_zprec_type ) , intent ( inout ) :: p
integer , intent ( in ) :: what
! ! $ integer , intent ( in ) :: what
real ( psb_dpk_ ) , intent ( in ) :: val
! ! $ real ( psb_dpk_ ) , intent ( in ) :: val
integer , intent ( out ) :: info
! ! $ integer , intent ( out ) :: info
! ! $
call mld_inner_precset ( p , what , val , info )
! ! $ call mld_inner_precset ( p , what , val , info )
end subroutine mld_i_zprecsetr
! ! $ end subroutine mld_i_zprecsetr
! ! $
subroutine mld_i_zprecsetc ( p , what , val , info )
! ! $ subroutine mld_i_zprecsetc ( p , what , val , info )
use psb_base_mod , only : psb_z spmat_type , psb_desc_type , psb_dpk_
! ! $ use psb_base_mod , only : psb_z _ sparse_ mat, psb_desc_type , psb_dpk_
use mld_prec_type , only : mld_zprec_type
! ! $ use mld_prec_type , only : mld_zprec_type
type ( mld_zprec_type ) , intent ( inout ) :: p
! ! $ type ( mld_zprec_type ) , intent ( inout ) :: p
integer , intent ( in ) :: what
! ! $ integer , intent ( in ) :: what
character ( len = * ) , intent ( in ) :: val
! ! $ character ( len = * ) , intent ( in ) :: val
integer , intent ( out ) :: info
! ! $ integer , intent ( out ) :: info
! ! $
call mld_inner_precset ( p , what , val , info )
! ! $ call mld_inner_precset ( p , what , val , info )
end subroutine mld_i_zprecsetc
! ! $ end subroutine mld_i_zprecsetc
! ! $
end module mld_prec_mod
end module mld_prec_mod