mirror of
https://github.com/sfilippone/psblas3.git
synced 2026-10-20 12:52:14 +00:00
First sweep of changes from Pasqua/Daniela.
This commit is contained in:
@@ -28,7 +28,7 @@
|
||||
!!$ POSSIBILITY OF SUCH DAMAGE.
|
||||
!!$
|
||||
!!$
|
||||
subroutine psb_dgen_precaply(alpha,prec,x,beta,y,desc_data,trans,work,info)
|
||||
subroutine psb_dgprec_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
|
||||
!
|
||||
! Compute Y <- beta*Y + alpha*K^-1 X
|
||||
! where K is a a basic preconditioner stored in prec
|
||||
@@ -95,7 +95,7 @@ subroutine psb_dgen_precaply(alpha,prec,x,beta,y,desc_data,trans,work,info)
|
||||
|
||||
call psb_geaxpby(alpha,x,beta,y,desc_data,info)
|
||||
|
||||
case(diagsc_)
|
||||
case(diag_)
|
||||
|
||||
if (size(work) >= size(x)) then
|
||||
ww => work
|
||||
@@ -119,7 +119,7 @@ subroutine psb_dgen_precaply(alpha,prec,x,beta,y,desc_data,trans,work,info)
|
||||
end if
|
||||
end if
|
||||
|
||||
case(bja_)
|
||||
case(bjac_)
|
||||
|
||||
call psb_bjac_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
|
||||
if(info.ne.0) then
|
||||
@@ -130,7 +130,7 @@ subroutine psb_dgen_precaply(alpha,prec,x,beta,y,desc_data,trans,work,info)
|
||||
|
||||
case default
|
||||
write(0,*) 'Invalid PRE%PREC ',prec%iprcparm(p_type_),':',&
|
||||
& min_prec_,noprec_,diagsc_,bja_
|
||||
& min_prec_,noprec_,diag_,bjac_
|
||||
end select
|
||||
|
||||
call psb_erractionrestore(err_act)
|
||||
@@ -145,5 +145,5 @@ subroutine psb_dgen_precaply(alpha,prec,x,beta,y,desc_data,trans,work,info)
|
||||
end if
|
||||
return
|
||||
|
||||
end subroutine psb_dgen_precaply
|
||||
end subroutine psb_dgprec_aply
|
||||
|
||||
|
||||
@@ -48,8 +48,8 @@ subroutine psb_dprc_aply(prec,x,y,desc_data,info,trans, work)
|
||||
logical,parameter :: debug=.false., debugprt=.false.
|
||||
character(len=20) :: name
|
||||
|
||||
interface psb_gen_precaply
|
||||
subroutine psb_dgen_precaply(alpha,prec,x,beta,y,desc_data,trans,work,info)
|
||||
interface psb_gprec_aply
|
||||
subroutine psb_dgprec_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
|
||||
use psb_base_mod
|
||||
use psb_prec_type
|
||||
type(psb_desc_type),intent(in) :: desc_data
|
||||
@@ -59,7 +59,7 @@ subroutine psb_dprc_aply(prec,x,y,desc_data,info,trans, work)
|
||||
character(len=1) :: trans
|
||||
real(kind(0.d0)),target :: work(:)
|
||||
integer, intent(out) :: info
|
||||
end subroutine psb_dgen_precaply
|
||||
end subroutine psb_dgprec_aply
|
||||
end interface
|
||||
|
||||
name='psb_prc_aply'
|
||||
@@ -86,7 +86,7 @@ subroutine psb_dprc_aply(prec,x,y,desc_data,info,trans, work)
|
||||
|
||||
end if
|
||||
|
||||
call psb_gen_precaply(done,prec,x,dzero,y,desc_data,trans_,work_,info)
|
||||
call psb_gprec_aply(done,prec,x,dzero,y,desc_data,trans_,work_,info)
|
||||
|
||||
if (present(work)) then
|
||||
else
|
||||
|
||||
@@ -110,7 +110,7 @@ subroutine psb_dprecbld(a,desc_a,p,info,upd)
|
||||
!
|
||||
|
||||
call psb_check_def(p%iprcparm(p_type_),'base_prec',&
|
||||
& diagsc_,is_legal_prec)
|
||||
& diag_,is_legal_prec)
|
||||
|
||||
call psb_nullify_desc(p%desc_data)
|
||||
|
||||
@@ -125,7 +125,7 @@ subroutine psb_dprecbld(a,desc_a,p,info,upd)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
case (diagsc_)
|
||||
case (diag_)
|
||||
|
||||
call psb_diagsc_bld(a,desc_a,p,iupd,info)
|
||||
if(debug) write(0,*)me,': out of psb_diagsc_bld'
|
||||
@@ -136,7 +136,7 @@ subroutine psb_dprecbld(a,desc_a,p,info,upd)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
case (bja_)
|
||||
case (bjac_)
|
||||
|
||||
call psb_check_def(p%iprcparm(iren_),'renumbering',&
|
||||
& renum_none_,is_legal_renum)
|
||||
|
||||
@@ -59,16 +59,16 @@ subroutine psb_dprecset(p,ptype,info,iv,rs,rv)
|
||||
p%iprcparm(iren_) = 0
|
||||
p%iprcparm(jac_sweeps_) = 1
|
||||
|
||||
case ('DIAG','DIAGSC')
|
||||
case ('DIAG')
|
||||
p%iprcparm(:) = 0
|
||||
p%iprcparm(p_type_) = diagsc_
|
||||
p%iprcparm(p_type_) = diag_
|
||||
p%iprcparm(f_type_) = f_none_
|
||||
p%iprcparm(iren_) = 0
|
||||
p%iprcparm(jac_sweeps_) = 1
|
||||
|
||||
case ('BJA','ILU')
|
||||
case ('BJAC')
|
||||
p%iprcparm(:) = 0
|
||||
p%iprcparm(p_type_) = bja_
|
||||
p%iprcparm(p_type_) = bjac_
|
||||
p%iprcparm(f_type_) = f_ilu_n_
|
||||
p%iprcparm(iren_) = 0
|
||||
p%iprcparm(ilu_fill_in_) = 0
|
||||
|
||||
+12
-10
@@ -38,7 +38,7 @@ module psb_prec_type
|
||||
! Reduces size of .mod file.
|
||||
use psb_base_mod, only : psb_dspmat_type, psb_zspmat_type, psb_desc_type
|
||||
|
||||
integer, parameter :: min_prec_=0, noprec_=0, diagsc_=1, bja_=2,&
|
||||
integer, parameter :: min_prec_=0, noprec_=0, diag_=1, bjac_=2,&
|
||||
& max_prec_=2
|
||||
|
||||
! Entries in iprcparm: preconditioner type, factorization type,
|
||||
@@ -124,9 +124,9 @@ contains
|
||||
select case(p%iprcparm(p_type_))
|
||||
case(noprec_)
|
||||
write(iout,*) 'No preconditioning'
|
||||
case(diagsc_)
|
||||
case(diag_)
|
||||
write(iout,*) 'Diagonal scaling'
|
||||
case(bja_)
|
||||
case(bjac_)
|
||||
write(iout,*) 'Block Jacobi with: ',&
|
||||
& fact_names(p%iprcparm(f_type_))
|
||||
end select
|
||||
@@ -141,9 +141,9 @@ contains
|
||||
select case(p%iprcparm(p_type_))
|
||||
case(noprec_)
|
||||
write(iout,*) 'No preconditioning'
|
||||
case(diagsc_)
|
||||
case(diag_)
|
||||
write(iout,*) 'Diagonal scaling'
|
||||
case(bja_)
|
||||
case(bjac_)
|
||||
write(iout,*) 'Block Jacobi with: ',&
|
||||
& fact_names(p%iprcparm(f_type_))
|
||||
end select
|
||||
@@ -154,7 +154,7 @@ contains
|
||||
integer, intent(in) :: ip
|
||||
logical :: is_legal_prec
|
||||
|
||||
is_legal_prec = ((ip>=noprec_).and.(ip<=bja_))
|
||||
is_legal_prec = ((ip>=noprec_).and.(ip<=bjac_))
|
||||
return
|
||||
end function is_legal_prec
|
||||
function is_legal_renum(ip)
|
||||
@@ -221,6 +221,7 @@ contains
|
||||
end subroutine psb_dcheck_def
|
||||
|
||||
subroutine psb_d_precfree(p,info)
|
||||
use psb_base_mod
|
||||
type(psb_dprec_type), intent(inout) :: p
|
||||
integer, intent(out) :: info
|
||||
integer :: ictxt,me, np,err_act,i
|
||||
@@ -293,6 +294,7 @@ contains
|
||||
end subroutine psb_nullify_dprec
|
||||
|
||||
subroutine psb_z_precfree(p,info)
|
||||
use psb_base_mod
|
||||
type(psb_zprec_type), intent(inout) :: p
|
||||
integer, intent(out) :: info
|
||||
integer :: ictxt,me, np,err_act,i
|
||||
@@ -364,10 +366,10 @@ contains
|
||||
select case(iprec)
|
||||
case(noprec_)
|
||||
pr_to_str='NOPREC'
|
||||
case(diagsc_)
|
||||
pr_to_str='DIAGSC'
|
||||
case(bja_)
|
||||
pr_to_str='BJA'
|
||||
case(diag_)
|
||||
pr_to_str='DIAG'
|
||||
case(bjac_)
|
||||
pr_to_str='BJAC'
|
||||
case default
|
||||
pr_to_str='???'
|
||||
end select
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
!!$ POSSIBILITY OF SUCH DAMAGE.
|
||||
!!$
|
||||
!!$
|
||||
subroutine psb_zgen_precaply(alpha,prec,x,beta,y,desc_data,trans,work,info)
|
||||
subroutine psb_zgprec_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
|
||||
!
|
||||
! Compute Y <- beta*Y + alpha*K^-1 X
|
||||
! where K is a a basic preconditioner stored in prec
|
||||
@@ -95,7 +95,7 @@ subroutine psb_zgen_precaply(alpha,prec,x,beta,y,desc_data,trans,work,info)
|
||||
|
||||
call psb_geaxpby(alpha,x,beta,y,desc_data,info)
|
||||
|
||||
case(diagsc_)
|
||||
case(diag_)
|
||||
|
||||
if (size(work) >= size(x)) then
|
||||
ww => work
|
||||
@@ -119,7 +119,7 @@ subroutine psb_zgen_precaply(alpha,prec,x,beta,y,desc_data,trans,work,info)
|
||||
end if
|
||||
end if
|
||||
|
||||
case(bja_)
|
||||
case(bjac_)
|
||||
|
||||
call psb_bjac_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
|
||||
if(info.ne.0) then
|
||||
@@ -130,7 +130,7 @@ subroutine psb_zgen_precaply(alpha,prec,x,beta,y,desc_data,trans,work,info)
|
||||
|
||||
case default
|
||||
write(0,*) 'Invalid PRE%PREC ',prec%iprcparm(p_type_),':',&
|
||||
& min_prec_,noprec_,diagsc_,bja_
|
||||
& min_prec_,noprec_,diag_,bjac_
|
||||
end select
|
||||
|
||||
call psb_erractionrestore(err_act)
|
||||
@@ -145,5 +145,5 @@ subroutine psb_zgen_precaply(alpha,prec,x,beta,y,desc_data,trans,work,info)
|
||||
end if
|
||||
return
|
||||
|
||||
end subroutine psb_zgen_precaply
|
||||
end subroutine psb_zgprec_aply
|
||||
|
||||
|
||||
@@ -48,8 +48,8 @@ subroutine psb_zprc_aply(prec,x,y,desc_data,info,trans, work)
|
||||
logical,parameter :: debug=.false., debugprt=.false.
|
||||
character(len=20) :: name
|
||||
|
||||
interface psb_gen_precaply
|
||||
subroutine psb_zgen_precaply(alpha,prec,x,beta,y,desc_data,trans,work,info)
|
||||
interface psb_gprec_aply
|
||||
subroutine psb_zgprec_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
|
||||
use psb_base_mod
|
||||
use psb_prec_type
|
||||
type(psb_desc_type),intent(in) :: desc_data
|
||||
@@ -59,7 +59,7 @@ subroutine psb_zprc_aply(prec,x,y,desc_data,info,trans, work)
|
||||
character(len=1) :: trans
|
||||
complex(kind(0.d0)),target :: work(:)
|
||||
integer, intent(out) :: info
|
||||
end subroutine psb_zgen_precaply
|
||||
end subroutine psb_zgprec_aply
|
||||
end interface
|
||||
|
||||
name='psb_prc_aply'
|
||||
@@ -86,7 +86,7 @@ subroutine psb_zprc_aply(prec,x,y,desc_data,info,trans, work)
|
||||
|
||||
end if
|
||||
|
||||
call psb_gen_precaply(zone,prec,x,zzero,y,desc_data,trans_, work_,info)
|
||||
call psb_gprec_aply(zone,prec,x,zzero,y,desc_data,trans_, work_,info)
|
||||
|
||||
if (present(work)) then
|
||||
else
|
||||
|
||||
@@ -114,7 +114,7 @@ subroutine psb_zprecbld(a,desc_a,p,info,upd)
|
||||
!
|
||||
|
||||
call psb_check_def(p%iprcparm(p_type_),'base_prec',&
|
||||
& diagsc_,is_legal_prec)
|
||||
& diag_,is_legal_prec)
|
||||
|
||||
call psb_nullify_desc(p%desc_data)
|
||||
|
||||
@@ -129,7 +129,7 @@ subroutine psb_zprecbld(a,desc_a,p,info,upd)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
case (diagsc_)
|
||||
case (diag_)
|
||||
|
||||
call psb_diagsc_bld(a,desc_a,p,iupd,info)
|
||||
if(debug) write(0,*)me,': out of psb_diagsc_bld'
|
||||
@@ -140,7 +140,7 @@ subroutine psb_zprecbld(a,desc_a,p,info,upd)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
case (bja_)
|
||||
case (bjac_)
|
||||
|
||||
call psb_check_def(p%iprcparm(iren_),'renumbering',&
|
||||
& renum_none_,is_legal_renum)
|
||||
|
||||
@@ -60,16 +60,16 @@ subroutine psb_zprecset(p,ptype,info,iv,rs,rv)
|
||||
p%iprcparm(iren_) = 0
|
||||
p%iprcparm(jac_sweeps_) = 1
|
||||
|
||||
case ('DIAG','DIAGSC')
|
||||
case ('DIAG')
|
||||
p%iprcparm(:) = 0
|
||||
p%iprcparm(p_type_) = diagsc_
|
||||
p%iprcparm(p_type_) = diag_
|
||||
p%iprcparm(f_type_) = f_none_
|
||||
p%iprcparm(iren_) = 0
|
||||
p%iprcparm(jac_sweeps_) = 1
|
||||
|
||||
case ('BJA','ILU')
|
||||
case ('BJAC')
|
||||
p%iprcparm(:) = 0
|
||||
p%iprcparm(p_type_) = bja_
|
||||
p%iprcparm(p_type_) = bjac_
|
||||
p%iprcparm(f_type_) = f_ilu_n_
|
||||
p%iprcparm(iren_) = 0
|
||||
p%iprcparm(ilu_fill_in_) = 0
|
||||
|
||||
Reference in New Issue
Block a user