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:
Salvatore Filippone
2014-03-31 13:30:26 +00:00
parent 1fe047609b
commit 2fe569381a
16 changed files with 214 additions and 382 deletions
+4 -3
View File
@@ -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
+2 -1
View File
@@ -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
+4 -3
View File
@@ -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
+4 -3
View File
@@ -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