mirror of
https://github.com/sfilippone/psblas3.git
synced 2026-10-06 22:55:08 +00:00
psblas3:
base/modules/psb_c_mat_mod.f90 base/modules/psb_d_mat_mod.f90 base/modules/psb_s_mat_mod.f90 base/modules/psb_z_mat_mod.f90 base/psblas/psb_cspnrm1.f90 base/psblas/psb_dspnrm1.f90 base/psblas/psb_sspnrm1.f90 base/psblas/psb_zspnrm1.f90 base/serial/impl/psb_c_mat_impl.F90 base/serial/impl/psb_d_mat_impl.F90 base/serial/impl/psb_s_mat_impl.F90 base/serial/impl/psb_z_mat_impl.F90 prec/impl/psb_c_diagprec_impl.f90 prec/impl/psb_d_diagprec_impl.f90 prec/impl/psb_s_diagprec_impl.f90 prec/impl/psb_z_diagprec_impl.f90 Change rowsum & friends into functions. Fix preconditioners.
This commit is contained in:
@@ -264,14 +264,15 @@ subroutine psb_c_diag_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
call psb_realloc(desc_a%get_local_cols(),prec%d,info,pad=cone)
|
||||
do i=1,nrow
|
||||
if (prec%d(i) == dzero) then
|
||||
prec%d(i) = done
|
||||
prec%d(i) = cone
|
||||
else
|
||||
prec%d(i) = done/prec%d(i)
|
||||
prec%d(i) = cone/prec%d(i)
|
||||
endif
|
||||
end do
|
||||
call psb_realloc(desc_a%get_local_cols(),prec%d,info,pad=cone)
|
||||
|
||||
allocate(prec%dv,stat=info)
|
||||
if (info == 0) then
|
||||
if (present(vmold)) then
|
||||
|
||||
@@ -264,6 +264,7 @@ subroutine psb_d_diag_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
call psb_realloc(desc_a%get_local_cols(),prec%d,info,pad=done)
|
||||
do i=1,nrow
|
||||
if (prec%d(i) == dzero) then
|
||||
prec%d(i) = done
|
||||
@@ -271,7 +272,7 @@ subroutine psb_d_diag_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold)
|
||||
prec%d(i) = done/prec%d(i)
|
||||
endif
|
||||
end do
|
||||
call psb_realloc(desc_a%get_local_cols(),prec%d,info,pad=done)
|
||||
|
||||
allocate(prec%dv,stat=info)
|
||||
if (info == 0) then
|
||||
if (present(vmold)) then
|
||||
|
||||
@@ -264,14 +264,15 @@ subroutine psb_s_diag_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
call psb_realloc(desc_a%get_local_cols(),prec%d,info,pad=sone)
|
||||
do i=1,nrow
|
||||
if (prec%d(i) == dzero) then
|
||||
prec%d(i) = done
|
||||
prec%d(i) = sone
|
||||
else
|
||||
prec%d(i) = done/prec%d(i)
|
||||
prec%d(i) = sone/prec%d(i)
|
||||
endif
|
||||
end do
|
||||
call psb_realloc(desc_a%get_local_cols(),prec%d,info,pad=sone)
|
||||
|
||||
allocate(prec%dv,stat=info)
|
||||
if (info == 0) then
|
||||
if (present(vmold)) then
|
||||
|
||||
@@ -264,14 +264,15 @@ subroutine psb_z_diag_precbld(a,desc_a,prec,info,upd,amold,afmt,vmold)
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
call psb_realloc(desc_a%get_local_cols(),prec%d,info,pad=zone)
|
||||
do i=1,nrow
|
||||
if (prec%d(i) == dzero) then
|
||||
prec%d(i) = done
|
||||
prec%d(i) = zone
|
||||
else
|
||||
prec%d(i) = done/prec%d(i)
|
||||
prec%d(i) = zone/prec%d(i)
|
||||
endif
|
||||
end do
|
||||
call psb_realloc(desc_a%get_local_cols(),prec%d,info,pad=zone)
|
||||
|
||||
allocate(prec%dv,stat=info)
|
||||
if (info == 0) then
|
||||
if (present(vmold)) then
|
||||
|
||||
Reference in New Issue
Block a user