diff --git a/prec/impl/psb_d_prec_type_impl.f90 b/prec/impl/psb_d_prec_type_impl.f90 index 0eb6e0707..1227a0eda 100644 --- a/prec/impl/psb_d_prec_type_impl.f90 +++ b/prec/impl/psb_d_prec_type_impl.f90 @@ -158,7 +158,7 @@ subroutine psb_d_apply1_vect(prec,x,desc_data,info,trans) end subroutine psb_d_apply1_vect -subroutine psb_d_apply2v(prec,x,y,desc_data,info,trans) +subroutine psb_d_apply2v(prec,x,y,desc_data,info,trans, work) use psb_base_mod use psb_d_prec_type, psb_protect_name => psb_d_apply2v implicit none @@ -167,6 +167,7 @@ subroutine psb_d_apply2v(prec,x,y,desc_data,info,trans) real(psb_dpk_),intent(inout) :: x(:) real(psb_dpk_),intent(inout) :: y(:) integer(psb_ipk_), intent(out) :: info + real(psb_dpk_),intent(inout), optional, target :: work(:) character(len=1), optional :: trans character :: trans_ @@ -193,7 +194,7 @@ subroutine psb_d_apply2v(prec,x,y,desc_data,info,trans) call psb_errpush(info,name,a_err="preconditioner") goto 9999 end if - call prec%prec%apply(done,x,dzero,y,desc_data,info,trans_) + call prec%prec%apply(done,x,dzero,y,desc_data,info,trans_, work) call psb_erractionrestore(err_act) return diff --git a/prec/impl/psb_s_prec_type_impl.f90 b/prec/impl/psb_s_prec_type_impl.f90 index 9ab884a85..606ac0e6e 100644 --- a/prec/impl/psb_s_prec_type_impl.f90 +++ b/prec/impl/psb_s_prec_type_impl.f90 @@ -158,7 +158,7 @@ subroutine psb_s_apply1_vect(prec,x,desc_data,info,trans) end subroutine psb_s_apply1_vect -subroutine psb_s_apply2v(prec,x,y,desc_data,info,trans) +subroutine psb_s_apply2v(prec,x,y,desc_data,info,trans, work) use psb_base_mod use psb_s_prec_type, psb_protect_name => psb_s_apply2v implicit none @@ -168,6 +168,8 @@ subroutine psb_s_apply2v(prec,x,y,desc_data,info,trans) real(psb_spk_),intent(inout) :: y(:) integer(psb_ipk_), intent(out) :: info character(len=1), optional :: trans + real(psb_spk_),intent(inout), optional, target :: work(:) + character :: trans_ type(psb_ctxt_type) :: ctxt @@ -193,7 +195,7 @@ subroutine psb_s_apply2v(prec,x,y,desc_data,info,trans) call psb_errpush(info,name,a_err="preconditioner") goto 9999 end if - call prec%prec%apply(sone,x,szero,y,desc_data,info,trans_) + call prec%prec%apply(sone,x,szero,y,desc_data,info,trans_, work) call psb_erractionrestore(err_act) return diff --git a/prec/psb_d_prec_type.f90 b/prec/psb_d_prec_type.f90 index 3db41f4e6..d5319ff16 100644 --- a/prec/psb_d_prec_type.f90 +++ b/prec/psb_d_prec_type.f90 @@ -131,7 +131,7 @@ module psb_d_prec_type end interface interface - subroutine psb_d_apply2v(prec,x,y,desc_data,info,trans) + subroutine psb_d_apply2v(prec,x,y,desc_data,info,trans, work) import :: psb_ipk_, psb_desc_type, psb_dprec_type, psb_d_vect_type, psb_dpk_ type(psb_desc_type),intent(in) :: desc_data class(psb_dprec_type), intent(inout) :: prec @@ -139,6 +139,7 @@ module psb_d_prec_type real(psb_dpk_),intent(inout) :: y(:) integer(psb_ipk_), intent(out) :: info character(len=1), optional :: trans + real(psb_dpk_),intent(inout), optional, target :: work(:) end subroutine psb_d_apply2v end interface diff --git a/prec/psb_s_prec_type.f90 b/prec/psb_s_prec_type.f90 index d761db9ce..b09852e68 100644 --- a/prec/psb_s_prec_type.f90 +++ b/prec/psb_s_prec_type.f90 @@ -131,7 +131,7 @@ module psb_s_prec_type end interface interface - subroutine psb_s_apply2v(prec,x,y,desc_data,info,trans) + subroutine psb_s_apply2v(prec,x,y,desc_data,info,trans, work) import :: psb_ipk_, psb_desc_type, psb_sprec_type, psb_s_vect_type, psb_spk_ type(psb_desc_type),intent(in) :: desc_data class(psb_sprec_type), intent(inout) :: prec @@ -139,6 +139,7 @@ module psb_s_prec_type real(psb_spk_),intent(inout) :: y(:) integer(psb_ipk_), intent(out) :: info character(len=1), optional :: trans + real(psb_spk_),intent(inout), optional, target :: work(:) end subroutine psb_s_apply2v end interface