diff --git a/prec/psb_c_base_prec_mod.f90 b/prec/psb_c_base_prec_mod.f90 index 713b0a06..0eeed5a0 100644 --- a/prec/psb_c_base_prec_mod.f90 +++ b/prec/psb_c_base_prec_mod.f90 @@ -69,7 +69,7 @@ contains type(psb_desc_type),intent(in) :: desc_data class(psb_c_base_prec_type), intent(in) :: prec complex(psb_spk_),intent(in) :: alpha, beta - complex(psb_spk_),intent(in) :: x(:) + complex(psb_spk_),intent(inout) :: x(:) complex(psb_spk_),intent(inout) :: y(:) integer, intent(out) :: info character(len=1), optional :: trans diff --git a/prec/psb_c_bjacprec.f90 b/prec/psb_c_bjacprec.f90 index bda05893..ccbacbe0 100644 --- a/prec/psb_c_bjacprec.f90 +++ b/prec/psb_c_bjacprec.f90 @@ -35,7 +35,7 @@ contains type(psb_desc_type),intent(in) :: desc_data class(psb_c_bjac_prec_type), intent(in) :: prec complex(psb_spk_),intent(in) :: alpha,beta - complex(psb_spk_),intent(in) :: x(:) + complex(psb_spk_),intent(inout) :: x(:) complex(psb_spk_),intent(inout) :: y(:) integer, intent(out) :: info character(len=1), optional :: trans diff --git a/prec/psb_c_diagprec.f90 b/prec/psb_c_diagprec.f90 index 28dbc006..ab5d49b9 100644 --- a/prec/psb_c_diagprec.f90 +++ b/prec/psb_c_diagprec.f90 @@ -28,7 +28,7 @@ contains use psb_base_mod type(psb_desc_type),intent(in) :: desc_data class(psb_c_diag_prec_type), intent(in) :: prec - complex(psb_spk_),intent(in) :: x(:) + complex(psb_spk_),intent(inout) :: x(:) complex(psb_spk_),intent(in) :: alpha, beta complex(psb_spk_),intent(inout) :: y(:) integer, intent(out) :: info diff --git a/prec/psb_c_nullprec.f90 b/prec/psb_c_nullprec.f90 index a1397277..a27e881b 100644 --- a/prec/psb_c_nullprec.f90 +++ b/prec/psb_c_nullprec.f90 @@ -26,7 +26,7 @@ contains use psb_base_mod type(psb_desc_type),intent(in) :: desc_data class(psb_c_null_prec_type), intent(in) :: prec - complex(psb_spk_),intent(in) :: x(:) + complex(psb_spk_),intent(inout) :: x(:) complex(psb_spk_),intent(in) :: alpha, beta complex(psb_spk_),intent(inout) :: y(:) integer, intent(out) :: info diff --git a/prec/psb_c_prec_type.f90 b/prec/psb_c_prec_type.f90 index 8a54cd49..3b503ca5 100644 --- a/prec/psb_c_prec_type.f90 +++ b/prec/psb_c_prec_type.f90 @@ -68,30 +68,6 @@ module psb_c_prec_type module procedure psb_cprec_sizeof end interface - interface psb_precaply - subroutine psb_cprc_aply(prec,x,y,desc_data,info,trans,work) - use psb_base_mod, only : psb_desc_type, psb_spk_ - import :: psb_cprec_type - type(psb_desc_type),intent(in) :: desc_data - type(psb_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 psb_cprc_aply - subroutine psb_cprc_aply1(prec,x,desc_data,info,trans) - use psb_base_mod, only : psb_desc_type, psb_spk_ - import :: psb_cprec_type - type(psb_desc_type),intent(in) :: desc_data - type(psb_cprec_type), intent(in) :: prec - complex(psb_spk_),intent(inout) :: x(:) - integer, intent(out) :: info - character(len=1), optional :: trans - end subroutine psb_cprc_aply1 - end interface - - contains diff --git a/prec/psb_d_base_prec_mod.f90 b/prec/psb_d_base_prec_mod.f90 index ccf842fc..04575ab6 100644 --- a/prec/psb_d_base_prec_mod.f90 +++ b/prec/psb_d_base_prec_mod.f90 @@ -75,7 +75,7 @@ contains type(psb_desc_type),intent(in) :: desc_data class(psb_d_base_prec_type), intent(in) :: prec real(psb_dpk_),intent(in) :: alpha, beta - real(psb_dpk_),intent(in) :: x(:) + real(psb_dpk_),intent(inout) :: x(:) real(psb_dpk_),intent(inout) :: y(:) integer, intent(out) :: info character(len=1), optional :: trans diff --git a/prec/psb_d_bjacprec.f90 b/prec/psb_d_bjacprec.f90 index 6b017299..4fdd7d98 100644 --- a/prec/psb_d_bjacprec.f90 +++ b/prec/psb_d_bjacprec.f90 @@ -36,7 +36,7 @@ contains type(psb_desc_type),intent(in) :: desc_data class(psb_d_bjac_prec_type), intent(in) :: prec real(psb_dpk_),intent(in) :: alpha,beta - real(psb_dpk_),intent(in) :: x(:) + real(psb_dpk_),intent(inout) :: x(:) real(psb_dpk_),intent(inout) :: y(:) integer, intent(out) :: info character(len=1), optional :: trans diff --git a/prec/psb_d_diagprec.f90 b/prec/psb_d_diagprec.f90 index 520cd123..36f7f14a 100644 --- a/prec/psb_d_diagprec.f90 +++ b/prec/psb_d_diagprec.f90 @@ -28,7 +28,7 @@ contains use psb_base_mod type(psb_desc_type),intent(in) :: desc_data class(psb_d_diag_prec_type), intent(in) :: prec - real(psb_dpk_),intent(in) :: x(:) + real(psb_dpk_),intent(inout) :: x(:) real(psb_dpk_),intent(in) :: alpha, beta real(psb_dpk_),intent(inout) :: y(:) integer, intent(out) :: info diff --git a/prec/psb_d_nullprec.f90 b/prec/psb_d_nullprec.f90 index f1444312..6f866c73 100644 --- a/prec/psb_d_nullprec.f90 +++ b/prec/psb_d_nullprec.f90 @@ -26,7 +26,7 @@ contains use psb_base_mod type(psb_desc_type),intent(in) :: desc_data class(psb_d_null_prec_type), intent(in) :: prec - real(psb_dpk_),intent(in) :: x(:) + real(psb_dpk_),intent(inout) :: x(:) real(psb_dpk_),intent(in) :: alpha, beta real(psb_dpk_),intent(inout) :: y(:) integer, intent(out) :: info diff --git a/prec/psb_d_prec_type.f90 b/prec/psb_d_prec_type.f90 index 4fa9a5f3..783ef5d6 100644 --- a/prec/psb_d_prec_type.f90 +++ b/prec/psb_d_prec_type.f90 @@ -74,29 +74,6 @@ module psb_d_prec_type module procedure psb_dprec_sizeof end interface - interface psb_precaply - subroutine psb_dprc_aply(prec,x,y,desc_data,info,trans,work) - use psb_base_mod, only : psb_desc_type, psb_dpk_ - import :: psb_dprec_type - type(psb_desc_type),intent(in) :: desc_data - type(psb_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 psb_dprc_aply - subroutine psb_dprc_aply1(prec,x,desc_data,info,trans) - use psb_base_mod, only : psb_desc_type, psb_dpk_ - import :: psb_dprec_type - type(psb_desc_type),intent(in) :: desc_data - type(psb_dprec_type), intent(in) :: prec - real(psb_dpk_),intent(inout) :: x(:) - integer, intent(out) :: info - character(len=1), optional :: trans - end subroutine psb_dprc_aply1 - end interface - contains @@ -220,7 +197,7 @@ contains call psb_info(ictxt, me, np) if (present(trans)) then - trans_=trans + trans_=psb_toupper(trans) else trans_='N' end if @@ -242,7 +219,7 @@ contains call psb_errpush(info,name,a_err="preconditioner") goto 9999 end if - call prec%prec%apply(done,x,dzero,y,desc_data,info,trans_,work=work_) + call prec%prec%apply(done,x,dzero,y,desc_data,info,trans=trans_,work=work_) if (present(work)) then else deallocate(work_,stat=info) @@ -302,7 +279,7 @@ contains call psb_errpush(info,name,a_err='Allocate') goto 9999 end if - call prec%prec%apply(done,x,dzero,ww,desc_data,info,trans_,work=w1) + call prec%prec%apply(done,x,dzero,ww,desc_data,info,trans=trans_,work=w1) if(info /= psb_success_) goto 9999 x(:) = ww(:) deallocate(ww,W1,stat=info) diff --git a/prec/psb_s_base_prec_mod.f90 b/prec/psb_s_base_prec_mod.f90 index bcad1ce8..d578477d 100644 --- a/prec/psb_s_base_prec_mod.f90 +++ b/prec/psb_s_base_prec_mod.f90 @@ -69,7 +69,7 @@ contains type(psb_desc_type),intent(in) :: desc_data class(psb_s_base_prec_type), intent(in) :: prec real(psb_spk_),intent(in) :: alpha, beta - real(psb_spk_),intent(in) :: x(:) + real(psb_spk_),intent(inout) :: x(:) real(psb_spk_),intent(inout) :: y(:) integer, intent(out) :: info character(len=1), optional :: trans diff --git a/prec/psb_s_bjacprec.f90 b/prec/psb_s_bjacprec.f90 index 3a5c9c2d..22efd0c8 100644 --- a/prec/psb_s_bjacprec.f90 +++ b/prec/psb_s_bjacprec.f90 @@ -4,7 +4,7 @@ module psb_s_bjacprec type, extends(psb_s_base_prec_type) :: psb_s_bjac_prec_type integer, allocatable :: iprcparm(:) - type(psb_sspmat_type), allocatable :: av(:) + type(psb_sspmat_type), allocatable :: av(:) real(psb_spk_), allocatable :: d(:) contains procedure, pass(prec) :: apply => psb_s_bjac_apply @@ -35,7 +35,7 @@ contains type(psb_desc_type),intent(in) :: desc_data class(psb_s_bjac_prec_type), intent(in) :: prec real(psb_spk_),intent(in) :: alpha,beta - real(psb_spk_),intent(in) :: x(:) + real(psb_spk_),intent(inout) :: x(:) real(psb_spk_),intent(inout) :: y(:) integer, intent(out) :: info character(len=1), optional :: trans diff --git a/prec/psb_s_diagprec.f90 b/prec/psb_s_diagprec.f90 index 61e44744..88d8046c 100644 --- a/prec/psb_s_diagprec.f90 +++ b/prec/psb_s_diagprec.f90 @@ -28,7 +28,7 @@ contains use psb_base_mod type(psb_desc_type),intent(in) :: desc_data class(psb_s_diag_prec_type), intent(in) :: prec - real(psb_spk_),intent(in) :: x(:) + real(psb_spk_),intent(inout) :: x(:) real(psb_spk_),intent(in) :: alpha, beta real(psb_spk_),intent(inout) :: y(:) integer, intent(out) :: info diff --git a/prec/psb_s_nullprec.f90 b/prec/psb_s_nullprec.f90 index 007835cc..6aafc06b 100644 --- a/prec/psb_s_nullprec.f90 +++ b/prec/psb_s_nullprec.f90 @@ -26,7 +26,7 @@ contains use psb_base_mod type(psb_desc_type),intent(in) :: desc_data class(psb_s_null_prec_type), intent(in) :: prec - real(psb_spk_),intent(in) :: x(:) + real(psb_spk_),intent(inout) :: x(:) real(psb_spk_),intent(in) :: alpha, beta real(psb_spk_),intent(inout) :: y(:) integer, intent(out) :: info diff --git a/prec/psb_s_prec_type.f90 b/prec/psb_s_prec_type.f90 index 1d752dab..533be0ca 100644 --- a/prec/psb_s_prec_type.f90 +++ b/prec/psb_s_prec_type.f90 @@ -69,28 +69,6 @@ module psb_s_prec_type module procedure psb_sprec_sizeof end interface - interface psb_precaply - subroutine psb_sprc_aply(prec,x,y,desc_data,info,trans,work) - use psb_base_mod, only : psb_desc_type, psb_spk_ - import :: psb_sprec_type - type(psb_desc_type),intent(in) :: desc_data - type(psb_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 psb_sprc_aply - subroutine psb_sprc_aply1(prec,x,desc_data,info,trans) - use psb_base_mod, only : psb_desc_type, psb_spk_ - import :: psb_sprec_type - type(psb_desc_type),intent(in) :: desc_data - type(psb_sprec_type), intent(in) :: prec - real(psb_spk_),intent(inout) :: x(:) - integer, intent(out) :: info - character(len=1), optional :: trans - end subroutine psb_sprc_aply1 - end interface contains diff --git a/prec/psb_z_base_prec_mod.f90 b/prec/psb_z_base_prec_mod.f90 index ccae7f40..a516aab8 100644 --- a/prec/psb_z_base_prec_mod.f90 +++ b/prec/psb_z_base_prec_mod.f90 @@ -70,7 +70,7 @@ contains type(psb_desc_type),intent(in) :: desc_data class(psb_z_base_prec_type), intent(in) :: prec complex(psb_dpk_),intent(in) :: alpha, beta - complex(psb_dpk_),intent(in) :: x(:) + complex(psb_dpk_),intent(inout) :: x(:) complex(psb_dpk_),intent(inout) :: y(:) integer, intent(out) :: info character(len=1), optional :: trans diff --git a/prec/psb_z_bjacprec.f90 b/prec/psb_z_bjacprec.f90 index 699e6997..f0a43ef6 100644 --- a/prec/psb_z_bjacprec.f90 +++ b/prec/psb_z_bjacprec.f90 @@ -35,7 +35,7 @@ contains type(psb_desc_type),intent(in) :: desc_data class(psb_z_bjac_prec_type), intent(in) :: prec complex(psb_dpk_),intent(in) :: alpha,beta - complex(psb_dpk_),intent(in) :: x(:) + complex(psb_dpk_),intent(inout) :: x(:) complex(psb_dpk_),intent(inout) :: y(:) integer, intent(out) :: info character(len=1), optional :: trans diff --git a/prec/psb_z_diagprec.f90 b/prec/psb_z_diagprec.f90 index 50d31268..e5626121 100644 --- a/prec/psb_z_diagprec.f90 +++ b/prec/psb_z_diagprec.f90 @@ -28,7 +28,7 @@ contains use psb_base_mod type(psb_desc_type),intent(in) :: desc_data class(psb_z_diag_prec_type), intent(in) :: prec - complex(psb_dpk_),intent(in) :: x(:) + complex(psb_dpk_),intent(inout) :: x(:) complex(psb_dpk_),intent(in) :: alpha, beta complex(psb_dpk_),intent(inout) :: y(:) integer, intent(out) :: info diff --git a/prec/psb_z_nullprec.f90 b/prec/psb_z_nullprec.f90 index af7c6a8d..baee5c5e 100644 --- a/prec/psb_z_nullprec.f90 +++ b/prec/psb_z_nullprec.f90 @@ -27,7 +27,7 @@ contains use psb_base_mod type(psb_desc_type),intent(in) :: desc_data class(psb_z_null_prec_type), intent(in) :: prec - complex(psb_dpk_),intent(in) :: x(:) + complex(psb_dpk_),intent(inout) :: x(:) complex(psb_dpk_),intent(in) :: alpha, beta complex(psb_dpk_),intent(inout) :: y(:) integer, intent(out) :: info diff --git a/prec/psb_z_prec_type.f90 b/prec/psb_z_prec_type.f90 index ef853d7b..548890b5 100644 --- a/prec/psb_z_prec_type.f90 +++ b/prec/psb_z_prec_type.f90 @@ -68,29 +68,6 @@ module psb_z_prec_type module procedure psb_zprec_sizeof end interface - interface psb_precaply - subroutine psb_zprc_aply(prec,x,y,desc_data,info,trans,work) - use psb_base_mod, only : psb_desc_type, psb_dpk_ - import :: psb_zprec_type - type(psb_desc_type),intent(in) :: desc_data - type(psb_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 psb_zprc_aply - subroutine psb_zprc_aply1(prec,x,desc_data,info,trans) - use psb_base_mod, only : psb_desc_type, psb_dpk_ - import :: psb_zprec_type - type(psb_desc_type),intent(in) :: desc_data - type(psb_zprec_type), intent(in) :: prec - complex(psb_dpk_),intent(inout) :: x(:) - integer, intent(out) :: info - character(len=1), optional :: trans - end subroutine psb_zprc_aply1 - end interface - contains