mirror of
https://github.com/sfilippone/psblas3.git
synced 2026-10-07 07:04:57 +00:00
psblas3:
base/Makefile base/modules/Makefile base/modules/psb_psblas_mod.f90 base/modules/psb_tools_mod.f90 base/newserial/Makefile base/newserial/README base/newserial/psbn_base_mat_mod.f03 base/newserial/psbn_d_base_mat_mod.f03 base/newserial/psbn_d_coo_impl.f03 base/newserial/psbn_d_csr_impl.f03 base/newserial/psbn_d_csr_mat_mod.f03 base/newserial/psbn_mat_mod.f03 base/psblas/psb_dnrmi.f90 base/psblas/psb_dspmm.f90 base/tools/psb_dspalloc.f90 base/tools/psb_dspasb.f90 base/tools/psb_dspfree.f90 base/tools/psb_dspins.f90 krylov/psb_dbicg.f90 krylov/psb_dcg.F90 krylov/psb_dcgs.f90 krylov/psb_dcgstab.F90 krylov/psb_dcgstabl.f90 krylov/psb_drgmres.f90 krylov/psb_krylov_mod.f90 prec/psb_dprecbld.f90 prec/psb_dprecinit.f90 prec/psb_dprecset.f90 prec/psb_prec_mod.f90 test/pargen/ppde.f90 test/pargen/runs/ppde.inp test/serial/d_coo_matgen.f03 test/serial/d_matgen.f03 test/serial/psbn_d_cxx_mat_mod.f03 Minimal set of changes to run BICGSTAB in serial mode with NONE as a preconditioner. It does now!
This commit is contained in:
+1
-1
@@ -7,11 +7,11 @@ LIBMOD=psb_base_mod$(.mod)
|
||||
lib:
|
||||
(cd modules; make lib LIBNAME=$(BASELIBNAME) F90=$(MPF90) F90COPT="$(F90COPT) $(MPI_OPT)")
|
||||
(cd serial; make lib LIBNAME=$(BASELIBNAME))
|
||||
(cd newserial; make lib LIBNAME=$(BASELIBNAME) )
|
||||
(cd comm; make lib LIBNAME=$(BASELIBNAME))
|
||||
(cd internals; make lib LIBNAME=$(BASELIBNAME))
|
||||
(cd tools; make lib LIBNAME=$(BASELIBNAME))
|
||||
(cd psblas; make lib LIBNAME=$(BASELIBNAME))
|
||||
(cd newserial; make lib LIBNAME=$(BASELIBNAME) )
|
||||
/bin/cp -p $(HERE)/$(LIBNAME) $(LIBDIR)
|
||||
/bin/cp -p $(LIBMOD) *$(.mod) $(LIBDIR)
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ CINCLUDES=-I.
|
||||
FINCLUDES=$(FMFLAG)$(LIBDIR) $(FMFLAG). $(FIFLAG).
|
||||
|
||||
|
||||
lib: $(BASIC_MODS) blacsmod $(UTIL_MODS) $(OBJS) $(LIBMOD)
|
||||
lib: $(BASIC_MODS) blacsmod newmods $(UTIL_MODS) $(OBJS) $(LIBMOD)
|
||||
$(AR) $(LIBDIR)/$(LIBNAME) $(MODULES) $(OBJS) $(MPFOBJS)
|
||||
$(RANLIB) $(LIBDIR)/$(LIBNAME)
|
||||
/bin/cp -p $(LIBMOD) $(LIBDIR)
|
||||
@@ -44,7 +44,8 @@ psb_hash_mod.o: psb_const_mod.o psb_realloc_mod.o
|
||||
|
||||
psb_base_mod.o: $(MODULES)
|
||||
|
||||
|
||||
newmods: $(BASIC_MODS) psb_string_mod.o psb_sort_mod.o psb_ip_reord_mod.o
|
||||
(cd ../newserial; make lib LIBNAME=$(LIBNAME))
|
||||
blacsmod:
|
||||
(make psb_blacs_mod.o psb_penv_mod.o F90COPT="$(F90COPT) $(EXTRA_OPT)")
|
||||
|
||||
|
||||
@@ -589,8 +589,9 @@ module psb_psblas_mod
|
||||
function psb_dnrmi(a, desc_a,info)
|
||||
use psb_serial_mod
|
||||
use psb_descriptor_type
|
||||
use psbn_d_mat_mod
|
||||
real(psb_dpk_) :: psb_dnrmi
|
||||
type(psb_dspmat_type), intent (in) :: a
|
||||
type(psbn_d_sparse_mat), intent (in) :: a
|
||||
type(psb_desc_type), intent (in) :: desc_a
|
||||
integer, intent(out) :: info
|
||||
end function psb_dnrmi
|
||||
@@ -646,7 +647,8 @@ module psb_psblas_mod
|
||||
&trans, k, jx, jy,work,doswap)
|
||||
use psb_serial_mod
|
||||
use psb_descriptor_type
|
||||
type(psb_dspmat_type), intent(in) :: a
|
||||
use psbn_d_mat_mod
|
||||
type(psbn_d_sparse_mat), intent(in) :: a
|
||||
real(psb_dpk_), intent(inout) :: x(:,:)
|
||||
real(psb_dpk_), intent(inout) :: y(:,:)
|
||||
real(psb_dpk_), intent(in) :: alpha, beta
|
||||
@@ -661,7 +663,8 @@ module psb_psblas_mod
|
||||
& desc_a, info, trans, work,doswap)
|
||||
use psb_serial_mod
|
||||
use psb_descriptor_type
|
||||
type(psb_dspmat_type), intent(in) :: a
|
||||
use psbn_d_mat_mod
|
||||
type(psbn_d_sparse_mat), intent(in) :: a
|
||||
real(psb_dpk_), intent(inout) :: x(:)
|
||||
real(psb_dpk_), intent(inout) :: y(:)
|
||||
real(psb_dpk_), intent(in) :: alpha, beta
|
||||
|
||||
@@ -550,8 +550,9 @@ Module psb_tools_mod
|
||||
subroutine psb_dspalloc(a, desc_a, info, nnz)
|
||||
use psb_descriptor_type
|
||||
use psb_spmat_type
|
||||
use psbn_d_mat_mod
|
||||
type(psb_desc_type), intent(inout) :: desc_a
|
||||
type(psb_dspmat_type), intent(out) :: a
|
||||
type(psbn_d_sparse_mat), intent(out) :: a
|
||||
integer, intent(out) :: info
|
||||
integer, optional, intent(in) :: nnz
|
||||
end subroutine psb_dspalloc
|
||||
@@ -586,7 +587,8 @@ Module psb_tools_mod
|
||||
subroutine psb_dspasb(a,desc_a, info, afmt, upd, dupl)
|
||||
use psb_descriptor_type
|
||||
use psb_spmat_type
|
||||
type(psb_dspmat_type), intent (inout) :: a
|
||||
use psbn_d_mat_mod
|
||||
type(psbn_d_sparse_mat), intent (inout) :: a
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer, intent(out) :: info
|
||||
integer,optional, intent(in) :: dupl, upd
|
||||
@@ -627,8 +629,9 @@ Module psb_tools_mod
|
||||
subroutine psb_dspfree(a, desc_a,info)
|
||||
use psb_descriptor_type
|
||||
use psb_spmat_type
|
||||
use psbn_d_mat_mod
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
type(psb_dspmat_type), intent(inout) ::a
|
||||
type(psbn_d_sparse_mat), intent(inout) ::a
|
||||
integer, intent(out) :: info
|
||||
end subroutine psb_dspfree
|
||||
subroutine psb_cspfree(a, desc_a,info)
|
||||
@@ -672,8 +675,9 @@ Module psb_tools_mod
|
||||
subroutine psb_dspins(nz,ia,ja,val,a,desc_a,info,rebuild)
|
||||
use psb_descriptor_type
|
||||
use psb_spmat_type
|
||||
use psbn_d_mat_mod
|
||||
type(psb_desc_type), intent(inout) :: desc_a
|
||||
type(psb_dspmat_type), intent(inout) :: a
|
||||
type(psbn_d_sparse_mat), intent(inout) :: a
|
||||
integer, intent(in) :: nz,ia(:),ja(:)
|
||||
real(psb_dpk_), intent(in) :: val(:)
|
||||
integer, intent(out) :: info
|
||||
|
||||
@@ -8,7 +8,7 @@ LIBMOD=
|
||||
OBJS =
|
||||
LIBDIR=..
|
||||
CINCLUDES=-I.
|
||||
FINCLUDES=$(FMFLAG)$(LIBDIR) $(FMFLAG). $(FIFLAG).
|
||||
FINCLUDES=$(FMFLAG)$(LIBDIR) $(FMFLAG). $(FIFLAG). $(FMFLAG)../modules
|
||||
|
||||
|
||||
lib: $(MODULES) $(OBJS) $(LIBMOD)
|
||||
@@ -16,7 +16,7 @@ lib: $(MODULES) $(OBJS) $(LIBMOD)
|
||||
$(RANLIB) $(LIBDIR)/$(LIBNAME) # /bin/cp -p $(LIBMOD) $(LIBDIR)
|
||||
/bin/cp -p *$(.mod) $(LIBDIR)
|
||||
|
||||
psbn_mat_mod.o: psbn_base_mat_mod.o
|
||||
psbn_mat_mod.o: psbn_base_mat_mod.o psbn_d_csr_mat_mod.o
|
||||
psbn_coo_mat.o psbn_csr_mat.o: psbn_d_base_mat_mod.o
|
||||
|
||||
psbn_d_coo_impl.o: psbn_d_base_mat_mod.o
|
||||
|
||||
@@ -15,11 +15,11 @@ Design principles for this directory.
|
||||
type. At this level we define the computational interfaces to
|
||||
MV and SV, since they require the type of the vectors/scalars
|
||||
involved (should also add NRMI here!!!!), but again they will
|
||||
be empty shells. We also define the interface to CSINS,
|
||||
be empty shells. We also define the interface to CSPUT,
|
||||
required to build the object, and TO_COO,FROM_COO (see
|
||||
below).
|
||||
iii. The X_YYY_object where the real implementation of the
|
||||
MV/SV/NRMI/CSINS/ALLOCATE/FREE/TO_COO/FROM_COO takes place.
|
||||
MV/SV/NRMI/CSPUT/ALLOCATE/FREE/TO_COO/FROM_COO takes place.
|
||||
|
||||
2. What is a sparse matrix (take 2)?
|
||||
The above structure by itself does not allow a sparse matrix to
|
||||
|
||||
@@ -369,8 +369,7 @@ contains
|
||||
end function get_size
|
||||
|
||||
subroutine sparse_print(iout,a,iv,eirs,eics,head,ivr,ivc)
|
||||
use psb_spmat_type
|
||||
use psb_string_mod
|
||||
use psb_error_mod
|
||||
implicit none
|
||||
|
||||
integer, intent(in) :: iout
|
||||
|
||||
@@ -191,7 +191,7 @@ module psbn_d_base_mat_mod
|
||||
|
||||
|
||||
interface
|
||||
subroutine d_coo_csput_impl(nz,val,ia,ja,a,imin,imax,jmin,jmax,info,gtl)
|
||||
subroutine d_coo_csput_impl(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl)
|
||||
use psb_const_mod
|
||||
import psbn_d_coo_sparse_mat
|
||||
class(psbn_d_coo_sparse_mat), intent(inout) :: a
|
||||
@@ -504,7 +504,7 @@ contains
|
||||
end subroutine mv_from_fmt
|
||||
|
||||
|
||||
subroutine csput(nz,val,ia,ja,a,imin,imax,jmin,jmax,info,gtl)
|
||||
subroutine csput(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl)
|
||||
use psb_error_mod
|
||||
use psb_realloc_mod
|
||||
implicit none
|
||||
@@ -1283,7 +1283,7 @@ contains
|
||||
end subroutine d_coo_reallocate_nz
|
||||
|
||||
|
||||
subroutine d_coo_csput(nz,val,ia,ja,a,imin,imax,jmin,jmax,info,gtl)
|
||||
subroutine d_coo_csput(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl)
|
||||
use psb_error_mod
|
||||
use psb_realloc_mod
|
||||
implicit none
|
||||
@@ -1330,7 +1330,7 @@ contains
|
||||
|
||||
if (nz == 0) return
|
||||
nza = a%get_nzeros()
|
||||
call d_coo_csput_impl(nz,val,ia,ja,a,imin,imax,jmin,jmax,info,gtl)
|
||||
call d_coo_csput_impl(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl)
|
||||
if (info /= 0) goto 9999
|
||||
|
||||
call psb_erractionrestore(err_act)
|
||||
@@ -1694,7 +1694,6 @@ contains
|
||||
|
||||
|
||||
subroutine d_coo_print(iout,a,iv,eirs,eics,head,ivr,ivc)
|
||||
use psb_spmat_type
|
||||
use psb_string_mod
|
||||
implicit none
|
||||
|
||||
|
||||
@@ -1184,9 +1184,10 @@ contains
|
||||
end subroutine d_coo_csgetrow_impl
|
||||
|
||||
|
||||
subroutine d_coo_csput_impl(nz,val,ia,ja,a,imin,imax,jmin,jmax,info,gtl)
|
||||
subroutine d_coo_csput_impl(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl)
|
||||
use psb_error_mod
|
||||
use psb_realloc_mod
|
||||
use psb_sort_mod
|
||||
use psbn_d_base_mat_mod, psb_protect_name => d_coo_csput_impl
|
||||
implicit none
|
||||
|
||||
@@ -1346,7 +1347,6 @@ contains
|
||||
use psb_const_mod
|
||||
use psb_realloc_mod
|
||||
use psb_string_mod
|
||||
use psb_serial_mod
|
||||
implicit none
|
||||
|
||||
class(psbn_d_coo_sparse_mat), intent(inout) :: a
|
||||
@@ -1742,9 +1742,9 @@ subroutine d_fix_coo_impl(a,info,idir)
|
||||
use psb_const_mod
|
||||
use psb_error_mod
|
||||
use psb_realloc_mod
|
||||
use psbn_d_base_mat_mod, psb_protect_name => d_fix_coo_impl
|
||||
use psb_string_mod
|
||||
use psb_ip_reord_mod
|
||||
use psbn_d_base_mat_mod, psb_protect_name => d_fix_coo_impl
|
||||
implicit none
|
||||
|
||||
class(psbn_d_coo_sparse_mat), intent(inout) :: a
|
||||
|
||||
@@ -1172,7 +1172,7 @@ end subroutine d_csr_csgetrow_impl
|
||||
|
||||
|
||||
|
||||
subroutine d_csr_csput_impl(nz,val,ia,ja,a,imin,imax,jmin,jmax,info,gtl)
|
||||
subroutine d_csr_csput_impl(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl)
|
||||
use psb_error_mod
|
||||
use psb_realloc_mod
|
||||
use psbn_d_csr_mat_mod, psb_protect_name => d_csr_csput_impl
|
||||
@@ -1236,7 +1236,7 @@ contains
|
||||
use psb_const_mod
|
||||
use psb_realloc_mod
|
||||
use psb_string_mod
|
||||
use psb_serial_mod
|
||||
use psb_sort_mod
|
||||
implicit none
|
||||
|
||||
class(psbn_d_csr_sparse_mat), intent(inout) :: a
|
||||
|
||||
@@ -139,7 +139,7 @@ module psbn_d_csr_mat_mod
|
||||
end interface
|
||||
|
||||
interface
|
||||
subroutine d_csr_csput_impl(nz,val,ia,ja,a,imin,imax,jmin,jmax,info,gtl)
|
||||
subroutine d_csr_csput_impl(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl)
|
||||
use psb_const_mod
|
||||
import psbn_d_csr_sparse_mat
|
||||
class(psbn_d_csr_sparse_mat), intent(inout) :: a
|
||||
@@ -322,7 +322,7 @@ contains
|
||||
|
||||
end subroutine d_csr_reallocate_nz
|
||||
|
||||
subroutine d_csr_csput(nz,val,ia,ja,a,imin,imax,jmin,jmax,info,gtl)
|
||||
subroutine d_csr_csput(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl)
|
||||
use psb_const_mod
|
||||
use psb_error_mod
|
||||
implicit none
|
||||
@@ -369,7 +369,7 @@ contains
|
||||
|
||||
if (nz == 0) return
|
||||
|
||||
call d_csr_csput_impl(nz,val,ia,ja,a,imin,imax,jmin,jmax,info,gtl)
|
||||
call d_csr_csput_impl(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl)
|
||||
if (info /= 0) goto 9999
|
||||
|
||||
call psb_erractionrestore(err_act)
|
||||
@@ -948,7 +948,6 @@ contains
|
||||
|
||||
|
||||
subroutine d_csr_print(iout,a,iv,eirs,eics,head,ivr,ivc)
|
||||
use psb_spmat_type
|
||||
use psb_string_mod
|
||||
implicit none
|
||||
|
||||
|
||||
@@ -66,7 +66,6 @@ module psbn_d_mat_mod
|
||||
procedure, pass(a) :: d_scals
|
||||
procedure, pass(a) :: d_scal
|
||||
generic, public :: scal => d_scals, d_scal
|
||||
|
||||
procedure, pass(a) :: d_cssv
|
||||
procedure, pass(a) :: d_cssm
|
||||
generic, public :: cssm => d_cssm, d_cssv
|
||||
@@ -78,9 +77,12 @@ module psbn_d_mat_mod
|
||||
& is_asb, is_sorted, is_upper, is_lower, is_triangle, &
|
||||
& is_unit, get_neigh, csall, csput, d_csgetrow,&
|
||||
& d_csgetblk, csclip, d_cscnv, d_cscnv_ip, &
|
||||
& reallocate_nz, free, trim, d_csmv, d_csmm, d_cssv, d_cssm, sparse_print, &
|
||||
& set_nrows, set_ncols, set_dupl, set_state, set_null, set_bld, &
|
||||
& set_upd, set_asb, set_sorted, set_upper, set_lower, set_triangle, &
|
||||
& reallocate_nz, free, trim, &
|
||||
& d_csmv, d_csmm, d_cssv, d_cssm, sparse_print, &
|
||||
& set_nrows, set_ncols, set_dupl, &
|
||||
& set_state, set_null, set_bld, &
|
||||
& set_upd, set_asb, set_sorted, &
|
||||
& set_upper, set_lower, set_triangle, &
|
||||
& set_unit, csnmi, get_diag, d_scals, d_scal
|
||||
|
||||
contains
|
||||
@@ -994,7 +996,7 @@ contains
|
||||
end subroutine trim
|
||||
|
||||
|
||||
subroutine csput(nz,val,ia,ja,a,imin,imax,jmin,jmax,info,gtl)
|
||||
subroutine csput(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl)
|
||||
use psbn_d_base_mat_mod
|
||||
use psb_error_mod
|
||||
implicit none
|
||||
@@ -1017,7 +1019,7 @@ contains
|
||||
endif
|
||||
|
||||
|
||||
call a%a%csput(nz,val,ia,ja,imin,imax,jmin,jmax,info,gtl)
|
||||
call a%a%csput(nz,ia,ja,val,imin,imax,jmin,jmax,info,gtl)
|
||||
if (info /= 0) goto 9999
|
||||
|
||||
call psb_erractionrestore(err_act)
|
||||
|
||||
@@ -47,9 +47,10 @@ function psb_dnrmi(a,desc_a,info)
|
||||
use psb_check_mod
|
||||
use psb_error_mod
|
||||
use psb_penv_mod
|
||||
use psbn_d_mat_mod
|
||||
implicit none
|
||||
|
||||
type(psb_dspmat_type), intent(in) :: a
|
||||
type(psbn_d_sparse_mat), intent(in) :: a
|
||||
integer, intent(out) :: info
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
real(psb_dpk_) :: psb_dnrmi
|
||||
@@ -94,7 +95,7 @@ function psb_dnrmi(a,desc_a,info)
|
||||
end if
|
||||
|
||||
if ((m /= 0).and.(n /= 0)) then
|
||||
nrmi = psb_csnmi(a,info)
|
||||
nrmi = a%csnmi()
|
||||
if(info /= 0) then
|
||||
info=4010
|
||||
ch_err='psb_csnmi'
|
||||
|
||||
@@ -74,12 +74,13 @@ subroutine psb_dspmm(alpha,a,x,beta,y,desc_a,info,&
|
||||
use psb_error_mod
|
||||
use psb_string_mod
|
||||
use psb_penv_mod
|
||||
use psbn_d_mat_mod
|
||||
implicit none
|
||||
|
||||
real(psb_dpk_), intent(in) :: alpha, beta
|
||||
real(psb_dpk_), intent(inout), target :: x(:,:)
|
||||
real(psb_dpk_), intent(inout), target :: y(:,:)
|
||||
type(psb_dspmat_type), intent(in) :: a
|
||||
type(psbn_d_sparse_mat), intent(in) :: a
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer, intent(out) :: info
|
||||
real(psb_dpk_), optional, target :: work(:)
|
||||
@@ -435,12 +436,14 @@ subroutine psb_dspmv(alpha,a,x,beta,y,desc_a,info,&
|
||||
use psb_error_mod
|
||||
use psb_string_mod
|
||||
use psb_penv_mod
|
||||
use psbn_d_mat_mod
|
||||
implicit none
|
||||
|
||||
real(psb_dpk_), intent(in) :: alpha, beta
|
||||
real(psb_dpk_), intent(inout), target :: x(:)
|
||||
real(psb_dpk_), intent(inout), target :: y(:)
|
||||
type(psb_dspmat_type), intent(in) :: a
|
||||
type(psbn_d_sparse_mat), intent(in) :: a
|
||||
!!$ type(psb_dspmat_type), intent(in) :: a
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer, intent(out) :: info
|
||||
real(psb_dpk_), optional, target :: work(:)
|
||||
|
||||
@@ -49,11 +49,12 @@ subroutine psb_dspalloc(a, desc_a, info, nnz)
|
||||
use psb_const_mod
|
||||
use psb_error_mod
|
||||
use psb_penv_mod
|
||||
use psbn_d_mat_mod
|
||||
implicit none
|
||||
|
||||
!....parameters...
|
||||
type(psb_desc_type), intent(inout) :: desc_a
|
||||
type(psb_dspmat_type), intent(out) :: a
|
||||
type(psbn_d_sparse_mat), intent(out) :: a
|
||||
integer, intent(out) :: info
|
||||
integer, optional, intent(in) :: nnz
|
||||
|
||||
@@ -108,7 +109,7 @@ subroutine psb_dspalloc(a, desc_a, info, nnz)
|
||||
& write(debug_unit,*) me,' ',trim(name),':allocating size:',length_ia1
|
||||
|
||||
!....allocate aspk, ia1, ia2.....
|
||||
call psb_sp_all(loc_row,loc_col,a,length_ia1,info)
|
||||
call a%csall(loc_row,loc_col,length_ia1,info)
|
||||
if(info /= 0) then
|
||||
info=4010
|
||||
ch_err='sp_all'
|
||||
|
||||
@@ -57,11 +57,12 @@ subroutine psb_dspasb(a,desc_a, info, afmt, upd, dupl)
|
||||
use psb_error_mod
|
||||
use psb_string_mod
|
||||
use psb_penv_mod
|
||||
use psbn_d_mat_mod
|
||||
implicit none
|
||||
|
||||
|
||||
!...Parameters....
|
||||
type(psb_dspmat_type), intent (inout) :: a
|
||||
type(psbn_d_sparse_mat), intent (inout) :: a
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer, intent(out) :: info
|
||||
integer,optional, intent(in) :: dupl, upd
|
||||
@@ -106,23 +107,27 @@ subroutine psb_dspasb(a,desc_a, info, afmt, upd, dupl)
|
||||
|
||||
!check on errors encountered in psdspins
|
||||
|
||||
spstate = a%infoa(psb_state_)
|
||||
if (spstate == psb_spmat_bld_) then
|
||||
|
||||
if (a%is_bld()) then
|
||||
!
|
||||
! First case: we come from a fresh build.
|
||||
!
|
||||
|
||||
n_row = psb_cd_get_local_rows(desc_a)
|
||||
n_col = psb_cd_get_local_cols(desc_a)
|
||||
a%m = n_row
|
||||
a%k = n_col
|
||||
call a%set_nrows(n_row)
|
||||
call a%set_ncols(n_col)
|
||||
end if
|
||||
|
||||
call psb_spcnv(a,info,afmt=afmt,upd=upd,dupl=dupl)
|
||||
call a%cscnv(info,type=afmt,dupl=dupl)
|
||||
|
||||
IF (debug_level >= psb_debug_ext_)&
|
||||
& write(debug_unit, *) me,' ',trim(name),': From SPCNV',&
|
||||
& info,' ',A%FIDA
|
||||
|
||||
IF (debug_level >= psb_debug_ext_) then
|
||||
ch_err=a%get_fmt()
|
||||
write(debug_unit, *) me,' ',trim(name),': From SPCNV',&
|
||||
& info,' ',ch_err
|
||||
end IF
|
||||
|
||||
if (info /= psb_no_err_) then
|
||||
info=4010
|
||||
ch_err='psb_spcnv'
|
||||
|
||||
@@ -46,11 +46,12 @@ subroutine psb_dspfree(a, desc_a,info)
|
||||
use psb_serial_mod
|
||||
use psb_const_mod
|
||||
use psb_error_mod
|
||||
use psbn_d_mat_mod
|
||||
implicit none
|
||||
|
||||
!....parameters...
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
type(psb_dspmat_type), intent(inout) :: a
|
||||
type(psbn_d_sparse_mat), intent(inout) :: a
|
||||
integer, intent(out) :: info
|
||||
!...locals....
|
||||
integer :: ictxt,err_act
|
||||
@@ -70,14 +71,14 @@ subroutine psb_dspfree(a, desc_a,info)
|
||||
end if
|
||||
|
||||
!...deallocate a....
|
||||
call psb_sp_free(a,info)
|
||||
call a%free()
|
||||
|
||||
|
||||
if(info /= 0) then
|
||||
info=2045
|
||||
call psb_errpush(info,name)
|
||||
goto 9999
|
||||
end if
|
||||
!!$ if(info /= 0) then
|
||||
!!$ info=2045
|
||||
!!$ call psb_errpush(info,name)
|
||||
!!$ goto 9999
|
||||
!!$ end if
|
||||
|
||||
call psb_erractionrestore(err_act)
|
||||
return
|
||||
|
||||
@@ -57,11 +57,12 @@ subroutine psb_dspins(nz,ia,ja,val,a,desc_a,info,rebuild)
|
||||
use psb_const_mod
|
||||
use psb_error_mod
|
||||
use psb_penv_mod
|
||||
use psbn_d_mat_mod
|
||||
implicit none
|
||||
|
||||
!....parameters...
|
||||
type(psb_desc_type), intent(inout) :: desc_a
|
||||
type(psb_dspmat_type), intent(inout) :: a
|
||||
type(psbn_d_sparse_mat), intent(inout) :: a
|
||||
integer, intent(in) :: nz,ia(:),ja(:)
|
||||
real(psb_dpk_), intent(in) :: val(:)
|
||||
integer, intent(out) :: info
|
||||
@@ -120,7 +121,6 @@ subroutine psb_dspins(nz,ia,ja,val,a,desc_a,info,rebuild)
|
||||
rebuild_ = .false.
|
||||
endif
|
||||
|
||||
spstate = a%infoa(psb_state_)
|
||||
if (psb_is_bld_desc(desc_a)) then
|
||||
if (psb_is_large_desc(desc_a)) then
|
||||
|
||||
@@ -139,8 +139,8 @@ subroutine psb_dspins(nz,ia,ja,val,a,desc_a,info,rebuild)
|
||||
nrow = psb_cd_get_local_rows(desc_a)
|
||||
ncol = psb_cd_get_local_cols(desc_a)
|
||||
|
||||
if (spstate == psb_spmat_bld_) then
|
||||
call psb_coins(nz,ila,jla,val,a,1,nrow,1,ncol,info)
|
||||
if (a%is_bld()) then
|
||||
call a%csput(nz,ila,jla,val,1,nrow,1,ncol,info)
|
||||
if (info /= 0) then
|
||||
info=4010
|
||||
ch_err='psb_coins'
|
||||
@@ -164,8 +164,8 @@ subroutine psb_dspins(nz,ia,ja,val,a,desc_a,info,rebuild)
|
||||
nrow = psb_cd_get_local_rows(desc_a)
|
||||
ncol = psb_cd_get_local_cols(desc_a)
|
||||
|
||||
if (spstate == psb_spmat_bld_) then
|
||||
call psb_coins(nz,ia,ja,val,a,1,nrow,1,ncol,info,gtl=desc_a%idxmap%glob_to_loc)
|
||||
if (a%is_bld()) then
|
||||
call a%csput(nz,ia,ja,val,1,nrow,1,ncol,info,gtl=desc_a%idxmap%glob_to_loc)
|
||||
if (info /= 0) then
|
||||
info=4010
|
||||
ch_err='psb_coins'
|
||||
@@ -198,8 +198,7 @@ subroutine psb_dspins(nz,ia,ja,val,a,desc_a,info,rebuild)
|
||||
nrow = psb_cd_get_local_rows(desc_a)
|
||||
ncol = psb_cd_get_local_cols(desc_a)
|
||||
|
||||
call psb_coins(nz,ila,jla,val,a,1,nrow,1,ncol,&
|
||||
& info,rebuild=rebuild_)
|
||||
call a%csput(nz,ila,jla,val,1,nrow,1,ncol,info)
|
||||
if (info /= 0) then
|
||||
info=4010
|
||||
ch_err='psb_coins'
|
||||
@@ -210,8 +209,8 @@ subroutine psb_dspins(nz,ia,ja,val,a,desc_a,info,rebuild)
|
||||
else
|
||||
nrow = psb_cd_get_local_rows(desc_a)
|
||||
ncol = psb_cd_get_local_cols(desc_a)
|
||||
call psb_coins(nz,ia,ja,val,a,1,nrow,1,ncol,&
|
||||
& info,gtl=desc_a%idxmap%glob_to_loc,rebuild=rebuild_)
|
||||
call a%csput(nz,ia,ja,val,1,nrow,1,ncol,&
|
||||
& info,gtl=desc_a%idxmap%glob_to_loc)
|
||||
if (info /= 0) then
|
||||
info=4010
|
||||
ch_err='psb_coins'
|
||||
|
||||
@@ -98,10 +98,12 @@ subroutine psb_dbicg(a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,istop)
|
||||
use psb_base_mod
|
||||
use psb_prec_mod
|
||||
use psb_krylov_mod, psb_protect_name => psb_dbicg
|
||||
use psbn_d_mat_mod
|
||||
implicit none
|
||||
|
||||
type(psbn_d_sparse_mat), intent(in) :: a
|
||||
|
||||
!!$ parameters
|
||||
type(psb_dspmat_type), intent(in) :: a
|
||||
!!$ type(psb_dspmat_type), intent(in) :: a
|
||||
type(psb_dprec_type), intent(in) :: prec
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
real(psb_dpk_), intent(in) :: b(:)
|
||||
|
||||
+5
-1
@@ -99,10 +99,14 @@ subroutine psb_dcg(a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,istop,cond)
|
||||
use psb_base_mod
|
||||
use psb_prec_mod
|
||||
use psb_krylov_mod, psb_protect_name => psb_dcg
|
||||
use psbn_d_mat_mod
|
||||
implicit none
|
||||
type(psbn_d_sparse_mat), intent(in) :: a
|
||||
|
||||
|
||||
|
||||
!!$ Parameters
|
||||
Type(psb_dspmat_type), Intent(in) :: a
|
||||
!!$ Type(psb_dspmat_type), Intent(in) :: a
|
||||
Type(psb_dprec_type), Intent(in) :: prec
|
||||
Type(psb_desc_type), Intent(in) :: desc_a
|
||||
Real(psb_dpk_), Intent(in) :: b(:)
|
||||
|
||||
+4
-1
@@ -98,10 +98,13 @@ Subroutine psb_dcgs(a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,istop)
|
||||
use psb_base_mod
|
||||
use psb_prec_mod
|
||||
use psb_krylov_mod, psb_protect_name => psb_dcgs
|
||||
use psbn_d_mat_mod
|
||||
implicit none
|
||||
type(psbn_d_sparse_mat), intent(in) :: a
|
||||
|
||||
|
||||
!!$ parameters
|
||||
Type(psb_dspmat_type), Intent(in) :: a
|
||||
!!$ Type(psb_dspmat_type), Intent(in) :: a
|
||||
Type(psb_desc_type), Intent(in) :: desc_a
|
||||
Type(psb_dprec_type), Intent(in) :: prec
|
||||
Real(psb_dpk_), Intent(in) :: b(:)
|
||||
|
||||
@@ -98,9 +98,13 @@ Subroutine psb_dcgstab(a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,istop)
|
||||
use psb_base_mod
|
||||
use psb_prec_mod
|
||||
use psb_krylov_mod, psb_protect_name => psb_dcgstab
|
||||
Implicit None
|
||||
use psbn_d_mat_mod
|
||||
implicit none
|
||||
type(psbn_d_sparse_mat), intent(in) :: a
|
||||
|
||||
|
||||
!!$ parameters
|
||||
Type(psb_dspmat_type), Intent(in) :: a
|
||||
!!$ Type(psb_dspmat_type), Intent(in) :: a
|
||||
Type(psb_dprec_type), Intent(in) :: prec
|
||||
Type(psb_desc_type), Intent(in) :: desc_a
|
||||
Real(psb_dpk_), Intent(in) :: b(:)
|
||||
|
||||
@@ -107,10 +107,13 @@ Subroutine psb_dcgstabl(a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,irst,is
|
||||
use psb_base_mod
|
||||
use psb_prec_mod
|
||||
use psb_krylov_mod, psb_protect_name => psb_dcgstabl
|
||||
use psbn_d_mat_mod
|
||||
implicit none
|
||||
type(psbn_d_sparse_mat), intent(in) :: a
|
||||
|
||||
|
||||
!!$ parameters
|
||||
Type(psb_dspmat_type), Intent(in) :: a
|
||||
!!$ Type(psb_dspmat_type), Intent(in) :: a
|
||||
Type(psb_dprec_type), Intent(in) :: prec
|
||||
Type(psb_desc_type), Intent(in) :: desc_a
|
||||
Real(psb_dpk_), Intent(in) :: b(:)
|
||||
|
||||
@@ -110,10 +110,13 @@ subroutine psb_drgmres(a,prec,b,x,eps,desc_a,info,itmax,iter,err,itrace,irst,ist
|
||||
use psb_base_mod
|
||||
use psb_prec_mod
|
||||
use psb_krylov_mod, psb_protect_name => psb_drgmres
|
||||
use psbn_d_mat_mod
|
||||
implicit none
|
||||
type(psbn_d_sparse_mat), intent(in) :: a
|
||||
|
||||
|
||||
!!$ Parameters
|
||||
Type(psb_dspmat_type), Intent(in) :: a
|
||||
!!$ Type(psb_dspmat_type), Intent(in) :: a
|
||||
Type(psb_dprec_type), Intent(in) :: prec
|
||||
Type(psb_desc_type), Intent(in) :: desc_a
|
||||
Real(psb_dpk_), Intent(in) :: b(:)
|
||||
|
||||
@@ -62,7 +62,8 @@ Module psb_krylov_mod
|
||||
& desc_a,info,itmax,iter,err,itrace,istop,cond)
|
||||
use psb_base_mod, only : psb_desc_type, psb_dspmat_type, psb_dpk_
|
||||
use psb_prec_mod, only : psb_dprec_type
|
||||
type(psb_dspmat_type), intent(in) :: a
|
||||
use psbn_d_mat_mod
|
||||
type(psbn_d_sparse_mat), intent(in) :: a
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
real(psb_dpk_), intent(in) :: b(:)
|
||||
real(psb_dpk_), intent(inout) :: x(:)
|
||||
@@ -125,7 +126,8 @@ Module psb_krylov_mod
|
||||
& desc_a,info,itmax,iter,err,itrace,istop)
|
||||
use psb_base_mod, only : psb_desc_type, psb_dspmat_type, psb_dpk_
|
||||
use psb_prec_mod, only : psb_dprec_type
|
||||
type(psb_dspmat_type), intent(in) :: a
|
||||
use psbn_d_mat_mod
|
||||
type(psbn_d_sparse_mat), intent(in) :: a
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
real(psb_dpk_), intent(in) :: b(:)
|
||||
real(psb_dpk_), intent(inout) :: x(:)
|
||||
@@ -188,7 +190,8 @@ Module psb_krylov_mod
|
||||
& desc_a,info,itmax,iter,err,itrace,istop)
|
||||
use psb_base_mod, only : psb_desc_type, psb_dspmat_type, psb_dpk_
|
||||
use psb_prec_mod, only : psb_dprec_type
|
||||
type(psb_dspmat_type), intent(in) :: a
|
||||
use psbn_d_mat_mod
|
||||
type(psbn_d_sparse_mat), intent(in) :: a
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
real(psb_dpk_), intent(in) :: b(:)
|
||||
real(psb_dpk_), intent(inout) :: x(:)
|
||||
@@ -251,7 +254,8 @@ Module psb_krylov_mod
|
||||
&itmax,iter,err, itrace,irst,istop)
|
||||
use psb_base_mod, only : psb_desc_type, psb_dspmat_type, psb_dpk_
|
||||
use psb_prec_mod, only : psb_dprec_type
|
||||
Type(psb_dspmat_type), Intent(in) :: a
|
||||
use psbn_d_mat_mod
|
||||
type(psbn_d_sparse_mat), intent(in) :: a
|
||||
Type(psb_desc_type), Intent(in) :: desc_a
|
||||
type(psb_dprec_type), intent(in) :: prec
|
||||
Real(psb_dpk_), Intent(in) :: b(:)
|
||||
@@ -314,7 +318,8 @@ Module psb_krylov_mod
|
||||
&itmax,iter,err,itrace,irst,istop)
|
||||
use psb_base_mod, only : psb_desc_type, psb_dspmat_type, psb_dpk_
|
||||
use psb_prec_mod, only : psb_dprec_type
|
||||
Type(psb_dspmat_type), Intent(in) :: a
|
||||
use psbn_d_mat_mod
|
||||
type(psbn_d_sparse_mat), intent(in) :: a
|
||||
Type(psb_desc_type), Intent(in) :: desc_a
|
||||
type(psb_dprec_type), intent(in) :: prec
|
||||
Real(psb_dpk_), Intent(in) :: b(:)
|
||||
@@ -377,7 +382,8 @@ Module psb_krylov_mod
|
||||
&itmax,iter,err,itrace,istop)
|
||||
use psb_base_mod, only : psb_desc_type, psb_dspmat_type, psb_dpk_
|
||||
use psb_prec_mod, only : psb_dprec_type
|
||||
type(psb_dspmat_type), intent(in) :: a
|
||||
use psbn_d_mat_mod
|
||||
type(psbn_d_sparse_mat), intent(in) :: a
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
type(psb_dprec_type), intent(in) :: prec
|
||||
real(psb_dpk_), intent(in) :: b(:)
|
||||
@@ -613,9 +619,12 @@ contains
|
||||
|
||||
use psb_base_mod
|
||||
use psb_prec_mod,only : psb_sprec_type, psb_dprec_type, psb_cprec_type, psb_zprec_type
|
||||
use psbn_d_mat_mod
|
||||
|
||||
type(psbn_d_sparse_mat), intent(in) :: a
|
||||
|
||||
character(len=*) :: method
|
||||
Type(psb_dspmat_type), Intent(in) :: a
|
||||
!!$ Type(psb_dspmat_type), Intent(in) :: a
|
||||
Type(psb_desc_type), Intent(in) :: desc_a
|
||||
type(psb_dprec_type), intent(in) :: prec
|
||||
Real(psb_dpk_), Intent(in) :: b(:)
|
||||
@@ -1059,10 +1068,12 @@ contains
|
||||
|
||||
subroutine psb_d_init_conv(methdname,stopc,trace,itmax,a,b,eps,desc_a,stopdat,info)
|
||||
use psb_base_mod
|
||||
use psbn_d_mat_mod
|
||||
implicit none
|
||||
type(psbn_d_sparse_mat), intent(in) :: a
|
||||
character(len=*), intent(in) :: methdname
|
||||
integer, intent(in) :: stopc, trace,itmax
|
||||
type(psb_dspmat_type), intent(in) :: a
|
||||
!!$ type(psb_dspmat_type), intent(in) :: a
|
||||
real(psb_dpk_), intent(in) :: b(:), eps
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
type(psb_itconv_type) :: stopdat
|
||||
|
||||
@@ -29,13 +29,14 @@
|
||||
!!$ POSSIBILITY OF SUCH DAMAGE.
|
||||
!!$
|
||||
!!$
|
||||
subroutine psb_dprecbld(a,desc_a,p,info,upd)
|
||||
subroutine psb_dprecbld(aa,desc_a,p,info,upd)
|
||||
|
||||
use psb_base_mod
|
||||
use psbn_d_mat_mod
|
||||
use psb_prec_mod, psb_protect_name => psb_dprecbld
|
||||
Implicit None
|
||||
|
||||
type(psb_dspmat_type), intent(in), target :: a
|
||||
type(psbn_d_sparse_mat), intent(in), target :: aa
|
||||
type(psb_desc_type), intent(in), target :: desc_a
|
||||
type(psb_dprec_type),intent(inout) :: p
|
||||
integer, intent(out) :: info
|
||||
@@ -46,6 +47,7 @@ subroutine psb_dprecbld(a,desc_a,p,info,upd)
|
||||
& me,np,mglob, err_act
|
||||
integer :: int_err(5)
|
||||
character :: upd_
|
||||
type(psb_dspmat_type), target :: a
|
||||
|
||||
integer,parameter :: iroot=psb_root_,iout=60,ilout=40
|
||||
character(len=20) :: name, ch_err
|
||||
@@ -86,6 +88,7 @@ subroutine psb_dprecbld(a,desc_a,p,info,upd)
|
||||
|
||||
call psb_nullify_desc(p%desc_data)
|
||||
|
||||
|
||||
select case(p%iprcparm(psb_p_type_))
|
||||
case (psb_noprec_)
|
||||
! Do nothing.
|
||||
|
||||
@@ -44,7 +44,11 @@ subroutine psb_dprecinit(p,ptype,info)
|
||||
if (info == 0) call psb_realloc(psb_rfpsz,p%rprcparm,info)
|
||||
if (info /= 0) return
|
||||
p%iprcparm(:) = 0
|
||||
|
||||
p%iprcparm(:) = 0
|
||||
p%iprcparm(psb_p_type_) = psb_noprec_
|
||||
p%iprcparm(psb_f_type_) = psb_f_none_
|
||||
|
||||
return
|
||||
select case(psb_toupper(ptype(1:len_trim(ptype))))
|
||||
case ('NONE','NOPREC')
|
||||
p%iprcparm(:) = 0
|
||||
|
||||
@@ -39,7 +39,7 @@ subroutine psb_dprecseti(p,what,val,info)
|
||||
integer, intent(out) :: info
|
||||
|
||||
info = 0
|
||||
|
||||
return
|
||||
select case(what)
|
||||
case (psb_f_type_)
|
||||
if (p%iprcparm(psb_p_type_) /= psb_bjac_) then
|
||||
|
||||
@@ -45,10 +45,11 @@ module psb_prec_mod
|
||||
character, intent(in),optional :: upd
|
||||
end subroutine psb_sprecbld
|
||||
subroutine psb_dprecbld(a,desc_a,prec,info,upd)
|
||||
use psbn_d_mat_mod
|
||||
use psb_base_mod, only : psb_desc_type, psb_dspmat_type, psb_dpk_
|
||||
use psb_prec_type, only : psb_dprec_type
|
||||
implicit none
|
||||
type(psb_dspmat_type), intent(in), target :: a
|
||||
type(psbn_d_sparse_mat), intent(in), target :: a
|
||||
type(psb_desc_type), intent(in), target :: desc_a
|
||||
type(psb_dprec_type), intent(inout) :: prec
|
||||
integer, intent(out) :: info
|
||||
|
||||
+17
-11
@@ -65,6 +65,7 @@ program ppde
|
||||
use psb_base_mod
|
||||
use psb_prec_mod
|
||||
use psb_krylov_mod
|
||||
use psbn_d_mat_mod
|
||||
implicit none
|
||||
|
||||
! input parameters
|
||||
@@ -77,7 +78,8 @@ program ppde
|
||||
real(psb_dpk_) :: t1, t2, tprec
|
||||
|
||||
! sparse matrix and preconditioner
|
||||
type(psb_dspmat_type) :: a
|
||||
type(psbn_d_sparse_mat) :: a
|
||||
!!$ type(psb_dspmat_type) :: a
|
||||
type(psb_dprec_type) :: prec
|
||||
! descriptor
|
||||
type(psb_desc_type) :: desc_a
|
||||
@@ -176,7 +178,8 @@ program ppde
|
||||
t2 = psb_wtime() - t1
|
||||
call psb_amx(ictxt,t2)
|
||||
|
||||
amatsize = psb_sizeof(a)
|
||||
!!$ amatsize = psb_sizeof(a)
|
||||
amatsize = 0
|
||||
descsize = psb_sizeof(desc_a)
|
||||
precsize = psb_sizeof(prec)
|
||||
call psb_sum(ictxt,amatsize)
|
||||
@@ -343,14 +346,15 @@ contains
|
||||
! Note that if a1=a2=a3=a4=0., the PDE is the well-known Laplace equation.
|
||||
!
|
||||
use psb_base_mod
|
||||
use psbn_d_mat_mod
|
||||
implicit none
|
||||
integer :: idim
|
||||
integer, parameter :: nb=20
|
||||
real(psb_dpk_), allocatable :: b(:),xv(:)
|
||||
type(psb_desc_type) :: desc_a
|
||||
integer :: ictxt, info
|
||||
character :: afmt*5
|
||||
type(psb_dspmat_type) :: a
|
||||
integer :: idim
|
||||
integer, parameter :: nb=20
|
||||
real(psb_dpk_), allocatable :: b(:),xv(:)
|
||||
type(psb_desc_type) :: desc_a
|
||||
integer :: ictxt, info
|
||||
character :: afmt*5
|
||||
type(psbn_d_sparse_mat) :: a
|
||||
real(psb_dpk_) :: zt(nb),glob_x,glob_y,glob_z
|
||||
integer :: m,n,nnz,glob_row,nlr,i,ii,ib,k
|
||||
integer :: x,y,z,ia,indx_owner
|
||||
@@ -359,6 +363,7 @@ contains
|
||||
integer, allocatable :: irow(:),icol(:),myidx(:)
|
||||
real(psb_dpk_), allocatable :: val(:)
|
||||
! deltah dimension of each grid cell
|
||||
|
||||
! deltat discretization time
|
||||
real(psb_dpk_) :: deltah
|
||||
real(psb_dpk_),parameter :: rhs=0.d0,one=1.d0,zero=0.d0
|
||||
@@ -367,7 +372,7 @@ contains
|
||||
external :: a1, a2, a3, a4, b1, b2, b3
|
||||
integer :: err_act
|
||||
|
||||
character(len=20) :: name, ch_err
|
||||
character(len=20) :: name, ch_err,tmpfmt
|
||||
|
||||
info = 0
|
||||
name = 'create_matrix'
|
||||
@@ -612,8 +617,9 @@ contains
|
||||
call psb_amx(ictxt,tasb)
|
||||
call psb_amx(ictxt,ttot)
|
||||
if(iam == psb_root_) then
|
||||
tmpfmt = a%get_fmt()
|
||||
write(*,'("The matrix has been generated and assembled in ",a3," format.")')&
|
||||
& a%fida(1:3)
|
||||
& tmpfmt
|
||||
write(*,'("-allocation time : ",es12.5)') talc
|
||||
write(*,'("-coeff. gen. time : ",es12.5)') tgen
|
||||
write(*,'("-assembly time : ",es12.5)') tasb
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
7 Number of entries below this
|
||||
BICGSTAB Iterative method BICGSTAB CGS BICG BICGSTABL RGMRES
|
||||
BJAC Preconditioner NONE DIAG BJAC
|
||||
NONE Preconditioner NONE DIAG BJAC
|
||||
CSR Storage format for matrix A: CSR COO JAD
|
||||
060 Domain size (acutal system is this**3)
|
||||
050 Domain size (acutal system is this**3)
|
||||
1 Stopping criterion
|
||||
200 MAXIT
|
||||
-1 ITRACE
|
||||
1000 MAXIT
|
||||
040 ITRACE
|
||||
20 IRST restart for RGMRES and BiCGSTABL
|
||||
|
||||
|
||||
|
||||
@@ -357,7 +357,7 @@ contains
|
||||
endif
|
||||
|
||||
end do
|
||||
call acoo%csput(element-1,val,irow,icol,1,nr,1,nr,info)
|
||||
call acoo%csput(element-1,irow,icol,val,1,nr,1,nr,info)
|
||||
|
||||
end do
|
||||
|
||||
|
||||
@@ -357,7 +357,7 @@ contains
|
||||
endif
|
||||
|
||||
end do
|
||||
call a_n%csput(element-1,val,irow,icol,1,nr,1,nr,info)
|
||||
call a_n%csput(element-1,irow,icol,val,1,nr,1,nr,info)
|
||||
|
||||
end do
|
||||
|
||||
|
||||
@@ -129,7 +129,7 @@ module psbn_d_cxx_mat_mod
|
||||
end interface
|
||||
|
||||
interface
|
||||
subroutine d_cxx_csput_impl(nz,val,ia,ja,a,imin,imax,jmin,jmax,info,gtl)
|
||||
subroutine d_cxx_csput_impl(nz,ia,ja,val,a,imin,imax,jmin,jmax,info,gtl)
|
||||
use psb_const_mod
|
||||
import psbn_d_cxx_sparse_mat
|
||||
class(psbn_d_cxx_sparse_mat), intent(inout) :: a
|
||||
|
||||
Reference in New Issue
Block a user