examples/fileread/mld_cexample_1lev.f90
 examples/fileread/mld_cexample_ml.f90
 examples/fileread/mld_dexample_1lev.f90
 examples/fileread/mld_dexample_ml.f90
 examples/fileread/mld_sexample_1lev.f90
 examples/fileread/mld_sexample_ml.f90
 examples/fileread/mld_zexample_1lev.f90
 examples/fileread/mld_zexample_ml.f90
 examples/pdegen/mld_dexample_1lev.f90
 examples/pdegen/mld_dexample_ml.f90
 examples/pdegen/mld_sexample_1lev.f90
 examples/pdegen/mld_sexample_ml.f90
 mlprec/mld_cdiag_bld.f90
 mlprec/mld_cmlprec_bld.f90
 mlprec/mld_cprecaply.f90
 mlprec/mld_cprecbld.f90
 mlprec/mld_cumf_bld.f90
 mlprec/mld_ddiag_bld.f90
 mlprec/mld_dmlprec_bld.f90
 mlprec/mld_dprecaply.f90
 mlprec/mld_dprecbld.f90
 mlprec/mld_inner_mod.f90
 mlprec/mld_sdiag_bld.f90
 mlprec/mld_smlprec_bld.f90
 mlprec/mld_sprecaply.f90
 mlprec/mld_sprecbld.f90
 mlprec/mld_zdiag_bld.f90
 mlprec/mld_zmlprec_bld.f90
 mlprec/mld_zprecaply.f90
 mlprec/mld_zprecbld.f90
 mlprec/mld_zumf_bld.f90
 tests/fileread/cf_sample.f90
 tests/fileread/df_sample.f90
 tests/fileread/sf_sample.f90
 tests/fileread/zf_sample.f90
 tests/pdegen/ppde.f90
 tests/pdegen/spde.f90


Changed interface in matdist. It is unspecified in the Fortran
standard whether a subroutine can be used to disambiguate a specific
interface with respect to an integer vector.

Fixes for various small inconsistencies in interfaces revealed by NAG
compiler.
stopcriterion
Salvatore Filippone 16 years ago
parent 73dac6d963
commit f4be42b685

@ -178,8 +178,8 @@ program mld_cexample_ml
call psb_barrier(ictxt)
if (iam==psb_root_) write(*,'("Partition type: block")')
call psb_matdist(aux_A, A, part_block, ictxt, &
& desc_A,b_glob,b,info)
call psb_matdist(aux_A, A, ictxt, &
& desc_A,b_glob,b,info, parts=part_block)
t2 = psb_wtime() - t1

@ -182,8 +182,8 @@ program mld_cexample_ml
call psb_barrier(ictxt)
if (iam==psb_root_) write(*,'("Partition type: block")')
call psb_matdist(aux_A, A, part_block, ictxt, &
& desc_A,b_glob,b,info)
call psb_matdist(aux_A, A, ictxt, &
& desc_A,b_glob,b,info, parts=part_block)
t2 = psb_wtime() - t1

@ -177,8 +177,8 @@ program mld_dexample_ml
call psb_barrier(ictxt)
if (iam==psb_root_) write(*,'("Partition type: block")')
call psb_matdist(aux_A, A, part_block, ictxt, &
& desc_A,b_glob,b,info)
call psb_matdist(aux_A, A, ictxt, &
& desc_A,b_glob,b,info, parts=part_block)
t2 = psb_wtime() - t1

@ -181,8 +181,8 @@ program mld_dexample_ml
call psb_barrier(ictxt)
if (iam==psb_root_) write(*,'("Partition type: block")')
call psb_matdist(aux_A, A, part_block, ictxt, &
& desc_A,b_glob,b,info)
call psb_matdist(aux_A, A, ictxt, &
& desc_A,b_glob,b,info, parts=part_block)
t2 = psb_wtime() - t1

@ -178,8 +178,8 @@ program mld_sexample_ml
call psb_barrier(ictxt)
if (iam==psb_root_) write(*,'("Partition type: block")')
call psb_matdist(aux_A, A, part_block, ictxt, &
& desc_A,b_glob,b,info)
call psb_matdist(aux_A, A, ictxt, &
& desc_A,b_glob,b,info, parts=part_block)
t2 = psb_wtime() - t1

@ -182,8 +182,8 @@ program mld_sexample_ml
call psb_barrier(ictxt)
if (iam==psb_root_) write(*,'("Partition type: block")')
call psb_matdist(aux_A, A, part_block, ictxt, &
& desc_A,b_glob,b,info)
call psb_matdist(aux_A, A, ictxt, &
& desc_A,b_glob,b,info, parts=part_block)
t2 = psb_wtime() - t1

@ -177,8 +177,8 @@ program mld_zexample_ml
call psb_barrier(ictxt)
if (iam==psb_root_) write(*,'("Partition type: block")')
call psb_matdist(aux_A, A, part_block, ictxt, &
& desc_A,b_glob,b,info)
call psb_matdist(aux_A, A, ictxt, &
& desc_A,b_glob,b,info, parts=part_block)
t2 = psb_wtime() - t1

@ -181,8 +181,8 @@ program mld_zexample_ml
call psb_barrier(ictxt)
if (iam==psb_root_) write(*,'("Partition type: block")')
call psb_matdist(aux_A, A, part_block, ictxt, &
& desc_A,b_glob,b,info)
call psb_matdist(aux_A, A, ictxt, &
& desc_A,b_glob,b,info, parts=part_block)
t2 = psb_wtime() - t1

@ -316,7 +316,7 @@ contains
m = ipoints*ipoints*ipoints
n = m
nnz = ((n*9)/(np))
if(iam == psb_root_) write(0,'("Generating Matrix (size=",i0x,")...")')n
if(iam == psb_root_) write(0,'("Generating Matrix (size=",i0,")...")')n
!
! Using a simple BLOCK distribution.

@ -354,7 +354,7 @@ contains
m = ipoints*ipoints*ipoints
n = m
nnz = ((n*9)/(np))
if(iam == psb_root_) write(0,'("Generating Matrix (size=",i0x,")...")')n
if(iam == psb_root_) write(0,'("Generating Matrix (size=",i0,")...")')n
!
! Using a simple BLOCK distribution.

@ -317,7 +317,7 @@ contains
m = ipoints*ipoints*ipoints
n = m
nnz = ((n*9)/(np))
if(iam == psb_root_) write(0,'("Generating Matrix (size=",i0x,")...")')n
if(iam == psb_root_) write(0,'("Generating Matrix (size=",i0,")...")')n
!
! Using a simple BLOCK distribution.

@ -355,7 +355,7 @@ contains
m = ipoints*ipoints*ipoints
n = m
nnz = ((n*9)/(np))
if(iam == psb_root_) write(0,'("Generating Matrix (size=",i0x,")...")')n
if(iam == psb_root_) write(0,'("Generating Matrix (size=",i0,")...")')n
!
! Using a simple BLOCK distribution.

@ -65,7 +65,7 @@ subroutine mld_cdiag_bld(a,desc_a,p,info)
Implicit None
! Arguments
type(psb_cspmat_type), target :: a
type(psb_cspmat_type),intent(in), target :: a
type(psb_desc_type), intent(in) :: desc_a
type(mld_cbaseprec_type),intent(inout) :: p
integer, intent(out) :: info

@ -73,7 +73,7 @@ subroutine mld_cmlprec_bld(a,desc_a,p,info)
Implicit None
! Arguments
type(psb_cspmat_type), target :: a
type(psb_cspmat_type),intent(in), target :: a
type(psb_desc_type), intent(in), target :: desc_a
type(mld_cprec_type),intent(inout),target :: p
integer, intent(out) :: info

@ -86,7 +86,7 @@ subroutine mld_cprecaply(prec,x,y,desc_data,info,trans,work)
complex(psb_spk_),intent(inout) :: y(:)
integer, intent(out) :: info
character(len=1), optional :: trans
complex(psb_spk_), optional, target :: work(:)
complex(psb_spk_),intent(inout), optional, target :: work(:)
! Local variables
character :: trans_

@ -66,7 +66,7 @@ subroutine mld_cprecbld(a,desc_a,p,info)
Implicit None
! Arguments
type(psb_cspmat_type), target :: a
type(psb_cspmat_type),intent(in), target :: a
type(psb_desc_type), intent(in), target :: desc_a
type(mld_cprec_type),intent(inout), target :: p
integer, intent(out) :: info

@ -83,7 +83,7 @@ subroutine mld_cumf_bld(a,desc_a,p,info)
implicit none
! Arguments
type(psb_dspmat_type), intent(inout) :: a
type(psb_cspmat_type), intent(inout) :: a
type(psb_desc_type), intent(in) :: desc_a
type(mld_cbaseprec_type), intent(inout) :: p
integer, intent(out) :: info

@ -65,7 +65,7 @@ subroutine mld_ddiag_bld(a,desc_a,p,info)
Implicit None
! Arguments
type(psb_dspmat_type), target :: a
type(psb_dspmat_type),intent(in), target :: a
type(psb_desc_type), intent(in) :: desc_a
type(mld_dbaseprec_type),intent(inout) :: p
integer, intent(out) :: info

@ -73,7 +73,7 @@ subroutine mld_dmlprec_bld(a,desc_a,p,info)
Implicit None
! Arguments
type(psb_dspmat_type), target :: a
type(psb_dspmat_type),intent(in), target :: a
type(psb_desc_type), intent(in), target :: desc_a
type(mld_dprec_type),intent(inout),target :: p
integer, intent(out) :: info

@ -86,7 +86,7 @@ subroutine mld_dprecaply(prec,x,y,desc_data,info,trans,work)
real(psb_dpk_),intent(inout) :: y(:)
integer, intent(out) :: info
character(len=1), optional :: trans
real(psb_dpk_), optional, target :: work(:)
real(psb_dpk_),intent(inout), optional, target :: work(:)
! Local variables
character :: trans_

@ -67,7 +67,7 @@ subroutine mld_dprecbld(a,desc_a,p,info)
Implicit None
! Arguments
type(psb_dspmat_type), target :: a
type(psb_dspmat_type),intent(in), target :: a
type(psb_desc_type), intent(in), target :: desc_a
type(mld_dprec_type),intent(inout),target :: p
integer, intent(out) :: info

@ -202,7 +202,7 @@ module mld_inner_mod
real(psb_spk_),intent(in) :: alpha,beta
real(psb_spk_),intent(in) :: x(:)
real(psb_spk_),intent(inout) :: y(:)
character :: trans
character,intent(in) :: trans
real(psb_spk_),target :: work(:)
integer, intent(out) :: info
end subroutine mld_smlprec_aply
@ -214,7 +214,7 @@ module mld_inner_mod
real(psb_dpk_),intent(in) :: alpha,beta
real(psb_dpk_),intent(in) :: x(:)
real(psb_dpk_),intent(inout) :: y(:)
character :: trans
character,intent(in) :: trans
real(psb_dpk_),target :: work(:)
integer, intent(out) :: info
end subroutine mld_dmlprec_aply
@ -226,7 +226,7 @@ module mld_inner_mod
complex(psb_spk_),intent(in) :: alpha,beta
complex(psb_spk_),intent(in) :: x(:)
complex(psb_spk_),intent(inout) :: y(:)
character :: trans
character,intent(in) :: trans
complex(psb_spk_),target :: work(:)
integer, intent(out) :: info
end subroutine mld_cmlprec_aply
@ -238,7 +238,7 @@ module mld_inner_mod
complex(psb_dpk_),intent(in) :: alpha,beta
complex(psb_dpk_),intent(in) :: x(:)
complex(psb_dpk_),intent(inout) :: y(:)
character :: trans
character,intent(in) :: trans
complex(psb_dpk_),target :: work(:)
integer, intent(out) :: info
end subroutine mld_zmlprec_aply
@ -673,7 +673,7 @@ module mld_inner_mod
subroutine mld_sas_bld(a,desc_a,p,upd,info)
use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_
use mld_prec_type, only : mld_sbaseprec_type
type(psb_sspmat_type), target :: a
type(psb_sspmat_type),intent(in), target :: a
type(psb_desc_type), intent(in), target :: desc_a
type(mld_sbaseprec_type),intent(inout) :: p
character, intent(in) :: upd
@ -682,7 +682,7 @@ module mld_inner_mod
subroutine mld_das_bld(a,desc_a,p,upd,info)
use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_
use mld_prec_type, only : mld_dbaseprec_type
type(psb_dspmat_type), target :: a
type(psb_dspmat_type),intent(in), target :: a
type(psb_desc_type), intent(in), target :: desc_a
type(mld_dbaseprec_type),intent(inout) :: p
character, intent(in) :: upd
@ -691,7 +691,7 @@ module mld_inner_mod
subroutine mld_cas_bld(a,desc_a,p,upd,info)
use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_
use mld_prec_type, only : mld_cbaseprec_type
type(psb_cspmat_type), target :: a
type(psb_cspmat_type),intent(in), target :: a
type(psb_desc_type), intent(in), target :: desc_a
type(mld_cbaseprec_type),intent(inout) :: p
character, intent(in) :: upd
@ -700,7 +700,7 @@ module mld_inner_mod
subroutine mld_zas_bld(a,desc_a,p,upd,info)
use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_
use mld_prec_type, only : mld_zbaseprec_type
type(psb_zspmat_type), target :: a
type(psb_zspmat_type),intent(in), target :: a
type(psb_desc_type), intent(in), target :: desc_a
type(mld_zbaseprec_type),intent(inout) :: p
character, intent(in) :: upd
@ -911,7 +911,7 @@ module mld_inner_mod
subroutine mld_cumf_bld(a,desc_a,p,info)
use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_
use mld_prec_type, only : mld_cbaseprec_type
type(psb_cspmat_type), intent(in) :: a
type(psb_cspmat_type), intent(inout) :: a
type(psb_desc_type), intent(in) :: desc_a
type(mld_cbaseprec_type), intent(inout) :: p
integer, intent(out) :: info
@ -919,7 +919,7 @@ module mld_inner_mod
subroutine mld_zumf_bld(a,desc_a,p,info)
use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_
use mld_prec_type, only : mld_zbaseprec_type
type(psb_zspmat_type), intent(in) :: a
type(psb_zspmat_type), intent(inout) :: a
type(psb_desc_type), intent(in) :: desc_a
type(mld_zbaseprec_type), intent(inout) :: p
integer, intent(out) :: info

@ -65,7 +65,7 @@ subroutine mld_sdiag_bld(a,desc_a,p,info)
Implicit None
! Arguments
type(psb_sspmat_type), target :: a
type(psb_sspmat_type),intent(in), target :: a
type(psb_desc_type), intent(in) :: desc_a
type(mld_sbaseprec_type),intent(inout) :: p
integer, intent(out) :: info

@ -73,7 +73,7 @@ subroutine mld_smlprec_bld(a,desc_a,p,info)
Implicit None
! Arguments
type(psb_sspmat_type), target :: a
type(psb_sspmat_type),intent(in), target :: a
type(psb_desc_type), intent(in), target :: desc_a
type(mld_sprec_type),intent(inout),target :: p
integer, intent(out) :: info

@ -86,7 +86,7 @@ subroutine mld_sprecaply(prec,x,y,desc_data,info,trans,work)
real(psb_spk_),intent(inout) :: y(:)
integer, intent(out) :: info
character(len=1), optional :: trans
real(psb_spk_), optional, target :: work(:)
real(psb_spk_),intent(inout), optional, target :: work(:)
! Local variables
character :: trans_

@ -67,7 +67,7 @@ subroutine mld_sprecbld(a,desc_a,p,info)
Implicit None
! Arguments
type(psb_sspmat_type), target :: a
type(psb_sspmat_type), intent(in), target :: a
type(psb_desc_type), intent(in), target :: desc_a
type(mld_sprec_type),intent(inout), target :: p
integer, intent(out) :: info

@ -65,7 +65,7 @@ subroutine mld_zdiag_bld(a,desc_a,p,info)
Implicit None
! Arguments
type(psb_zspmat_type), target :: a
type(psb_zspmat_type),intent(in), target :: a
type(psb_desc_type), intent(in) :: desc_a
type(mld_zbaseprec_type),intent(inout) :: p
integer, intent(out) :: info

@ -73,7 +73,7 @@ subroutine mld_zmlprec_bld(a,desc_a,p,info)
Implicit None
! Arguments
type(psb_zspmat_type), target :: a
type(psb_zspmat_type),intent(in), target :: a
type(psb_desc_type), intent(in), target :: desc_a
type(mld_zprec_type),intent(inout),target :: p
integer, intent(out) :: info

@ -86,7 +86,7 @@ subroutine mld_zprecaply(prec,x,y,desc_data,info,trans,work)
complex(psb_dpk_),intent(inout) :: y(:)
integer, intent(out) :: info
character(len=1), optional :: trans
complex(psb_dpk_), optional, target :: work(:)
complex(psb_dpk_),intent(inout), optional, target :: work(:)
! Local variables
character :: trans_

@ -66,7 +66,7 @@ subroutine mld_zprecbld(a,desc_a,p,info)
Implicit None
! Arguments
type(psb_zspmat_type), target :: a
type(psb_zspmat_type),intent(in), target :: a
type(psb_desc_type), intent(in), target :: desc_a
type(mld_zprec_type),intent(inout), target :: p
integer, intent(out) :: info

@ -83,7 +83,7 @@ subroutine mld_zumf_bld(a,desc_a,p,info)
implicit none
! Arguments
type(psb_dspmat_type), intent(inout) :: a
type(psb_zspmat_type), intent(inout) :: a
type(psb_desc_type), intent(in) :: desc_a
type(mld_zbaseprec_type), intent(inout) :: p
integer, intent(out) :: info

@ -52,23 +52,23 @@ program cf_sample
character(len=20) :: descr ! verbose description of the prec
character(len=10) :: prec ! overall prectype
integer :: novr ! number of overlap layers
character(len=16) :: restr ! restriction over application of as
character(len=16) :: prol ! prolongation over application of as
character(len=16) :: solve ! Factorization type: ILU, SuperLU, UMFPACK.
integer :: fill1 ! Fill-in for factorization 1
real(psb_spk_) :: thr1 ! Threshold for fact. 1 ILU(T)
integer :: nlev ! Number of levels in multilevel prec.
character(len=16) :: aggrkind ! smoothed/raw aggregatin
character(len=16) :: aggr_alg ! local or global aggregation
character(len=16) :: mltype ! additive or multiplicative 2nd level prec
character(len=16) :: restr ! restriction over application of AS
character(len=16) :: prol ! prolongation over application of AS
character(len=16) :: solve ! factorization type: ILU, SuperLU, UMFPACK
integer :: fill ! fillin for factorization
real(psb_spk_) :: thr ! threshold for fact. ILU(T)
integer :: nlev ! number of levels in multilevel prec.
character(len=16) :: aggrkind ! smoothed, raw aggregation
character(len=16) :: aggr_alg ! aggregation algorithm (currently only decoupled)
character(len=16) :: mltype ! additive or multiplicative multi-level prec
character(len=16) :: smthpos ! side: pre, post, both smoothing
character(len=16) :: cmat ! coarse mat
character(len=16) :: csolve ! Coarse solver: bjac, umf, slu, sludist
character(len=16) :: csbsolve ! Coarse subsolver: ILU, ILU(T), SuperLU, UMFPACK.
integer :: cfill ! Fill-in for factorization 1
real(psb_spk_) :: cthres ! Threshold for fact. 1 ILU(T)
integer :: cjswp ! Jacobi sweeps
real(psb_spk_) :: athres ! smoother aggregation threshold
character(len=16) :: cmat ! coarse mat: distributed, replicated
character(len=16) :: csolve ! coarse solver: bjac, umf, slu, sludist
character(len=16) :: csbsolve ! coarse subsolver: ILU, ILU(T), SuperLU, UMFPACK
integer :: cfill ! fillin for coarse factorization
real(psb_spk_) :: cthres ! threshold for coarse fact. ILU(T)
integer :: cjswp ! block-Jacobi sweeps
real(psb_spk_) :: athres ! smoothed aggregation threshold
end type precdata
type(precdata) :: prec_choice
@ -76,7 +76,7 @@ program cf_sample
type(psb_cspmat_type) :: a, aux_a
! preconditioner data
type(mld_cprec_type) :: prec
Type(mld_cprec_type) :: prec
! dense matrices
complex(psb_spk_), allocatable, target :: aux_b(:,:), d(:)
@ -203,8 +203,8 @@ program cf_sample
call part_block(i,m_problem,np,ipv,nv)
ivg(i) = ipv(1)
enddo
call psb_matdist(aux_a, a, ivg, ictxt, &
& desc_a,b_col_glob,b_col,info,fmt=afmt)
call psb_matdist(aux_a, a, ictxt, &
& desc_a,b_col_glob,b_col,info,fmt=afmt,v=ivg)
else if (ipart == 2) then
if (iam==psb_root_) then
write(*,'("Partition type: graph")')
@ -215,12 +215,12 @@ program cf_sample
call psb_barrier(ictxt)
call distr_mtpart(psb_root_,ictxt)
call getv_mtpart(ivg)
call psb_matdist(aux_a, a, ivg, ictxt, &
& desc_a,b_col_glob,b_col,info,fmt=afmt)
call psb_matdist(aux_a, a, ictxt, &
& desc_a,b_col_glob,b_col,info,fmt=afmt,v=ivg)
else
if (iam==psb_root_) write(*,'("Partition type: block")')
call psb_matdist(aux_a, a, part_block, ictxt, &
& desc_a,b_col_glob,b_col,info,fmt=afmt)
call psb_matdist(aux_a, a, ictxt, &
& desc_a,b_col_glob,b_col,info,fmt=afmt,parts=part_block)
end if
call psb_geall(x_col,desc_a,info)
@ -253,8 +253,8 @@ program cf_sample
call mld_precset(prec,mld_sub_restr_, prec_choice%restr,info)
call mld_precset(prec,mld_sub_prol_, prec_choice%prol, info)
call mld_precset(prec,mld_sub_solve_, prec_choice%solve,info)
call mld_precset(prec,mld_sub_fillin_,prec_choice%fill1,info)
call mld_precset(prec,mld_sub_iluthrs_, prec_choice%thr1, info)
call mld_precset(prec,mld_sub_fillin_,prec_choice%fill,info)
call mld_precset(prec,mld_sub_iluthrs_, prec_choice%thr, info)
if (psb_toupper(prec_choice%prec) =='ML') then
call mld_precset(prec,mld_aggr_kind_, prec_choice%aggrkind,info)
call mld_precset(prec,mld_aggr_alg_, prec_choice%aggr_alg,info)
@ -399,8 +399,8 @@ contains
call read_data(prec%restr,5) ! restriction over application of as
call read_data(prec%prol,5) ! prolongation over application of as
call read_data(prec%solve,5) ! Factorization type: ILU, SuperLU, UMFPACK.
call read_data(prec%fill1,5) ! Fill-in for factorization 1
call read_data(prec%thr1,5) ! Threshold for fact. 1 ILU(T)
call read_data(prec%fill,5) ! Fill-in for factorization
call read_data(prec%thr,5) ! Threshold for fact. ILU(T)
if (psb_toupper(prec%prec) == 'ML') then
call read_data(prec%nlev,5) ! Number of levels in multilevel prec.
call read_data(prec%aggrkind,5) ! smoothed/raw aggregatin
@ -410,8 +410,8 @@ contains
call read_data(prec%cmat,5) ! coarse mat
call read_data(prec%csolve,5) ! Factorization type: ILU, SuperLU, UMFPACK.
call read_data(prec%csbsolve,5) ! Factorization type: ILU, SuperLU, UMFPACK.
call read_data(prec%cfill,5) ! Fill-in for factorization 1
call read_data(prec%cthres,5) ! Threshold for fact. 1 ILU(T)
call read_data(prec%cfill,5) ! Fill-in for factorization
call read_data(prec%cthres,5) ! Threshold for fact. ILU(T)
call read_data(prec%cjswp,5) ! Jacobi sweeps
call read_data(prec%athres,5) ! smoother aggr thresh
end if
@ -435,8 +435,8 @@ contains
call psb_bcast(icontxt,prec%restr) ! restriction over application of as
call psb_bcast(icontxt,prec%prol) ! prolongation over application of as
call psb_bcast(icontxt,prec%solve) ! Factorization type: ILU, SuperLU, UMFPACK.
call psb_bcast(icontxt,prec%fill1) ! Fill-in for factorization 1
call psb_bcast(icontxt,prec%thr1) ! Threshold for fact. 1 ILU(T)
call psb_bcast(icontxt,prec%fill) ! Fill-in for factorization
call psb_bcast(icontxt,prec%thr) ! Threshold for fact. ILU(T)
if (psb_toupper(prec%prec) == 'ML') then
call psb_bcast(icontxt,prec%nlev) ! Number of levels in multilevel prec.
call psb_bcast(icontxt,prec%aggrkind) ! smoothed/raw aggregatin
@ -446,8 +446,8 @@ contains
call psb_bcast(icontxt,prec%cmat) ! coarse mat
call psb_bcast(icontxt,prec%csolve) ! Factorization type: ILU, SuperLU, UMFPACK.
call psb_bcast(icontxt,prec%csbsolve) ! Factorization type: ILU, SuperLU, UMFPACK.
call psb_bcast(icontxt,prec%cfill) ! Fill-in for factorization 1
call psb_bcast(icontxt,prec%cthres) ! Threshold for fact. 1 ILU(T)
call psb_bcast(icontxt,prec%cfill) ! Fill-in for factorization
call psb_bcast(icontxt,prec%cthres) ! Threshold for fact. ILU(T)
call psb_bcast(icontxt,prec%cjswp) ! Jacobi sweeps
call psb_bcast(icontxt,prec%athres) ! smoother aggr thresh
end if

@ -203,8 +203,8 @@ program df_sample
call part_block(i,m_problem,np,ipv,nv)
ivg(i) = ipv(1)
enddo
call psb_matdist(aux_a, a, ivg, ictxt, &
& desc_a,b_col_glob,b_col,info,fmt=afmt)
call psb_matdist(aux_a, a, ictxt, &
& desc_a,b_col_glob,b_col,info,fmt=afmt,v=ivg)
else if (ipart == 2) then
if (iam==psb_root_) then
write(*,'("Partition type: graph")')
@ -215,12 +215,12 @@ program df_sample
call psb_barrier(ictxt)
call distr_mtpart(psb_root_,ictxt)
call getv_mtpart(ivg)
call psb_matdist(aux_a, a, ivg, ictxt, &
& desc_a,b_col_glob,b_col,info,fmt=afmt)
call psb_matdist(aux_a, a, ictxt, &
& desc_a,b_col_glob,b_col,info,fmt=afmt,v=ivg)
else
if (iam==psb_root_) write(*,'("Partition type: block")')
call psb_matdist(aux_a, a, part_block, ictxt, &
& desc_a,b_col_glob,b_col,info,fmt=afmt)
call psb_matdist(aux_a, a, ictxt, &
& desc_a,b_col_glob,b_col,info,fmt=afmt,parts=part_block)
end if
call psb_geall(x_col,desc_a,info)

@ -52,23 +52,23 @@ program sf_sample
character(len=20) :: descr ! verbose description of the prec
character(len=10) :: prec ! overall prectype
integer :: novr ! number of overlap layers
character(len=16) :: restr ! restriction over application of as
character(len=16) :: prol ! prolongation over application of as
character(len=16) :: solve ! Factorization type: ILU, SuperLU, UMFPACK.
integer :: fill1 ! Fill-in for factorization 1
real(psb_spk_) :: thr1 ! Threshold for fact. 1 ILU(T)
integer :: nlev ! Number of levels in multilevel prec.
character(len=16) :: aggrkind ! smoothed/raw aggregatin
character(len=16) :: aggr_alg ! local or global aggregation
character(len=16) :: mltype ! additive or multiplicative 2nd level prec
character(len=16) :: restr ! restriction over application of AS
character(len=16) :: prol ! prolongation over application of AS
character(len=16) :: solve ! factorization type: ILU, SuperLU, UMFPACK
integer :: fill ! fillin for factorization
real(psb_spk_) :: thr ! threshold for fact. ILU(T)
integer :: nlev ! number of levels in multilevel prec.
character(len=16) :: aggrkind ! smoothed, raw aggregation
character(len=16) :: aggr_alg ! aggregation algorithm (currently only decoupled)
character(len=16) :: mltype ! additive or multiplicative multi-level prec
character(len=16) :: smthpos ! side: pre, post, both smoothing
character(len=16) :: cmat ! coarse mat
character(len=16) :: csolve ! Coarse solver: bjac, umf, slu, sludist
character(len=16) :: csbsolve ! Coarse subsolver: ILU, ILU(T), SuperLU, UMFPACK.
integer :: cfill ! Fill-in for factorization 1
real(psb_spk_) :: cthres ! Threshold for fact. 1 ILU(T)
integer :: cjswp ! Jacobi sweeps
real(psb_spk_) :: athres ! smoother aggregation threshold
character(len=16) :: cmat ! coarse mat: distributed, replicated
character(len=16) :: csolve ! coarse solver: bjac, umf, slu, sludist
character(len=16) :: csbsolve ! coarse subsolver: ILU, ILU(T), SuperLU, UMFPACK
integer :: cfill ! fillin for coarse factorization
real(psb_spk_) :: cthres ! threshold for coarse fact. ILU(T)
integer :: cjswp ! block-Jacobi sweeps
real(psb_spk_) :: athres ! smoothed aggregation threshold
end type precdata
type(precdata) :: prec_choice
@ -203,8 +203,8 @@ program sf_sample
call part_block(i,m_problem,np,ipv,nv)
ivg(i) = ipv(1)
enddo
call psb_matdist(aux_a, a, ivg, ictxt, &
& desc_a,b_col_glob,b_col,info,fmt=afmt)
call psb_matdist(aux_a, a, ictxt, &
& desc_a,b_col_glob,b_col,info,fmt=afmt,v=ivg)
else if (ipart == 2) then
if (iam==psb_root_) then
write(*,'("Partition type: graph")')
@ -215,12 +215,12 @@ program sf_sample
call psb_barrier(ictxt)
call distr_mtpart(psb_root_,ictxt)
call getv_mtpart(ivg)
call psb_matdist(aux_a, a, ivg, ictxt, &
& desc_a,b_col_glob,b_col,info,fmt=afmt)
call psb_matdist(aux_a, a, ictxt, &
& desc_a,b_col_glob,b_col,info,fmt=afmt,v=ivg)
else
if (iam==psb_root_) write(*,'("Partition type: block")')
call psb_matdist(aux_a, a, part_block, ictxt, &
& desc_a,b_col_glob,b_col,info,fmt=afmt)
call psb_matdist(aux_a, a, ictxt, &
& desc_a,b_col_glob,b_col,info,fmt=afmt,parts=part_block)
end if
call psb_geall(x_col,desc_a,info)
@ -253,8 +253,8 @@ program sf_sample
call mld_precset(prec,mld_sub_restr_, prec_choice%restr,info)
call mld_precset(prec,mld_sub_prol_, prec_choice%prol, info)
call mld_precset(prec,mld_sub_solve_, prec_choice%solve,info)
call mld_precset(prec,mld_sub_fillin_,prec_choice%fill1,info)
call mld_precset(prec,mld_sub_iluthrs_, prec_choice%thr1, info)
call mld_precset(prec,mld_sub_fillin_,prec_choice%fill,info)
call mld_precset(prec,mld_sub_iluthrs_, prec_choice%thr, info)
if (psb_toupper(prec_choice%prec) =='ML') then
call mld_precset(prec,mld_aggr_kind_, prec_choice%aggrkind,info)
call mld_precset(prec,mld_aggr_alg_, prec_choice%aggr_alg,info)
@ -399,8 +399,8 @@ contains
call read_data(prec%restr,5) ! restriction over application of as
call read_data(prec%prol,5) ! prolongation over application of as
call read_data(prec%solve,5) ! Factorization type: ILU, SuperLU, UMFPACK.
call read_data(prec%fill1,5) ! Fill-in for factorization 1
call read_data(prec%thr1,5) ! Threshold for fact. 1 ILU(T)
call read_data(prec%fill,5) ! Fill-in for factorization
call read_data(prec%thr,5) ! Threshold for fact. ILU(T)
if (psb_toupper(prec%prec) == 'ML') then
call read_data(prec%nlev,5) ! Number of levels in multilevel prec.
call read_data(prec%aggrkind,5) ! smoothed/raw aggregatin
@ -410,8 +410,8 @@ contains
call read_data(prec%cmat,5) ! coarse mat
call read_data(prec%csolve,5) ! Factorization type: ILU, SuperLU, UMFPACK.
call read_data(prec%csbsolve,5) ! Factorization type: ILU, SuperLU, UMFPACK.
call read_data(prec%cfill,5) ! Fill-in for factorization 1
call read_data(prec%cthres,5) ! Threshold for fact. 1 ILU(T)
call read_data(prec%cfill,5) ! Fill-in for factorization
call read_data(prec%cthres,5) ! Threshold for fact. ILU(T)
call read_data(prec%cjswp,5) ! Jacobi sweeps
call read_data(prec%athres,5) ! smoother aggr thresh
end if
@ -435,8 +435,8 @@ contains
call psb_bcast(icontxt,prec%restr) ! restriction over application of as
call psb_bcast(icontxt,prec%prol) ! prolongation over application of as
call psb_bcast(icontxt,prec%solve) ! Factorization type: ILU, SuperLU, UMFPACK.
call psb_bcast(icontxt,prec%fill1) ! Fill-in for factorization 1
call psb_bcast(icontxt,prec%thr1) ! Threshold for fact. 1 ILU(T)
call psb_bcast(icontxt,prec%fill) ! Fill-in for factorization
call psb_bcast(icontxt,prec%thr) ! Threshold for fact. ILU(T)
if (psb_toupper(prec%prec) == 'ML') then
call psb_bcast(icontxt,prec%nlev) ! Number of levels in multilevel prec.
call psb_bcast(icontxt,prec%aggrkind) ! smoothed/raw aggregatin
@ -446,8 +446,8 @@ contains
call psb_bcast(icontxt,prec%cmat) ! coarse mat
call psb_bcast(icontxt,prec%csolve) ! Factorization type: ILU, SuperLU, UMFPACK.
call psb_bcast(icontxt,prec%csbsolve) ! Factorization type: ILU, SuperLU, UMFPACK.
call psb_bcast(icontxt,prec%cfill) ! Fill-in for factorization 1
call psb_bcast(icontxt,prec%cthres) ! Threshold for fact. 1 ILU(T)
call psb_bcast(icontxt,prec%cfill) ! Fill-in for factorization
call psb_bcast(icontxt,prec%cthres) ! Threshold for fact. ILU(T)
call psb_bcast(icontxt,prec%cjswp) ! Jacobi sweeps
call psb_bcast(icontxt,prec%athres) ! smoother aggr thresh
end if

@ -52,23 +52,23 @@ program zf_sample
character(len=20) :: descr ! verbose description of the prec
character(len=10) :: prec ! overall prectype
integer :: novr ! number of overlap layers
character(len=16) :: restr ! restriction over application of as
character(len=16) :: prol ! prolongation over application of as
character(len=16) :: solve ! Factorization type: ILU, SuperLU, UMFPACK.
integer :: fill1 ! Fill-in for factorization 1
real(psb_dpk_) :: thr1 ! Threshold for fact. 1 ILU(T)
integer :: nlev ! Number of levels in multilevel prec.
character(len=16) :: aggrkind ! smoothed/raw aggregatin
character(len=16) :: aggr_alg ! local or global aggregation
character(len=16) :: mltype ! additive or multiplicative 2nd level prec
character(len=16) :: restr ! restriction over application of AS
character(len=16) :: prol ! prolongation over application of AS
character(len=16) :: solve ! factorization type: ILU, SuperLU, UMFPACK
integer :: fill ! fillin for factorization
real(psb_dpk_) :: thr ! threshold for fact. ILU(T)
integer :: nlev ! number of levels in multilevel prec.
character(len=16) :: aggrkind ! smoothed, raw aggregation
character(len=16) :: aggr_alg ! aggregation algorithm (currently only decoupled)
character(len=16) :: mltype ! additive or multiplicative multi-level prec
character(len=16) :: smthpos ! side: pre, post, both smoothing
character(len=16) :: cmat ! coarse mat
character(len=16) :: csolve ! Coarse solver: bjac, umf, slu, sludist
character(len=16) :: csbsolve ! Coarse subsolver: ILU, ILU(T), SuperLU, UMFPACK.
integer :: cfill ! Fill-in for factorization 1
real(psb_dpk_) :: cthres ! Threshold for fact. 1 ILU(T)
integer :: cjswp ! Jacobi sweeps
real(psb_dpk_) :: athres ! smoother aggregation threshold
character(len=16) :: cmat ! coarse mat: distributed, replicated
character(len=16) :: csolve ! coarse solver: bjac, umf, slu, sludist
character(len=16) :: csbsolve ! coarse subsolver: ILU, ILU(T), SuperLU, UMFPACK
integer :: cfill ! fillin for coarse factorization
real(psb_dpk_) :: cthres ! threshold for coarse fact. ILU(T)
integer :: cjswp ! block-Jacobi sweeps
real(psb_dpk_) :: athres ! smoothed aggregation threshold
end type precdata
type(precdata) :: prec_choice
@ -203,8 +203,8 @@ program zf_sample
call part_block(i,m_problem,np,ipv,nv)
ivg(i) = ipv(1)
enddo
call psb_matdist(aux_a, a, ivg, ictxt, &
& desc_a,b_col_glob,b_col,info,fmt=afmt)
call psb_matdist(aux_a, a, ictxt, &
& desc_a,b_col_glob,b_col,info,fmt=afmt,v=ivg)
else if (ipart == 2) then
if (iam==psb_root_) then
write(*,'("Partition type: graph")')
@ -215,12 +215,12 @@ program zf_sample
call psb_barrier(ictxt)
call distr_mtpart(psb_root_,ictxt)
call getv_mtpart(ivg)
call psb_matdist(aux_a, a, ivg, ictxt, &
& desc_a,b_col_glob,b_col,info,fmt=afmt)
call psb_matdist(aux_a, a, ictxt, &
& desc_a,b_col_glob,b_col,info,fmt=afmt,v=ivg)
else
if (iam==psb_root_) write(*,'("Partition type: block")')
call psb_matdist(aux_a, a, part_block, ictxt, &
& desc_a,b_col_glob,b_col,info,fmt=afmt)
call psb_matdist(aux_a, a, ictxt, &
& desc_a,b_col_glob,b_col,info,fmt=afmt,parts=part_block)
end if
call psb_geall(x_col,desc_a,info)
@ -253,8 +253,8 @@ program zf_sample
call mld_precset(prec,mld_sub_restr_, prec_choice%restr,info)
call mld_precset(prec,mld_sub_prol_, prec_choice%prol, info)
call mld_precset(prec,mld_sub_solve_, prec_choice%solve,info)
call mld_precset(prec,mld_sub_fillin_,prec_choice%fill1,info)
call mld_precset(prec,mld_sub_iluthrs_, prec_choice%thr1, info)
call mld_precset(prec,mld_sub_fillin_,prec_choice%fill,info)
call mld_precset(prec,mld_sub_iluthrs_, prec_choice%thr, info)
if (psb_toupper(prec_choice%prec) =='ML') then
call mld_precset(prec,mld_aggr_kind_, prec_choice%aggrkind,info)
call mld_precset(prec,mld_aggr_alg_, prec_choice%aggr_alg,info)
@ -399,8 +399,8 @@ contains
call read_data(prec%restr,5) ! restriction over application of as
call read_data(prec%prol,5) ! prolongation over application of as
call read_data(prec%solve,5) ! Factorization type: ILU, SuperLU, UMFPACK.
call read_data(prec%fill1,5) ! Fill-in for factorization 1
call read_data(prec%thr1,5) ! Threshold for fact. 1 ILU(T)
call read_data(prec%fill,5) ! Fill-in for factorization
call read_data(prec%thr,5) ! Threshold for fact. ILU(T)
if (psb_toupper(prec%prec) == 'ML') then
call read_data(prec%nlev,5) ! Number of levels in multilevel prec.
call read_data(prec%aggrkind,5) ! smoothed/raw aggregatin
@ -410,8 +410,8 @@ contains
call read_data(prec%cmat,5) ! coarse mat
call read_data(prec%csolve,5) ! Factorization type: ILU, SuperLU, UMFPACK.
call read_data(prec%csbsolve,5) ! Factorization type: ILU, SuperLU, UMFPACK.
call read_data(prec%cfill,5) ! Fill-in for factorization 1
call read_data(prec%cthres,5) ! Threshold for fact. 1 ILU(T)
call read_data(prec%cfill,5) ! Fill-in for factorization
call read_data(prec%cthres,5) ! Threshold for fact. ILU(T)
call read_data(prec%cjswp,5) ! Jacobi sweeps
call read_data(prec%athres,5) ! smoother aggr thresh
end if
@ -435,8 +435,8 @@ contains
call psb_bcast(icontxt,prec%restr) ! restriction over application of as
call psb_bcast(icontxt,prec%prol) ! prolongation over application of as
call psb_bcast(icontxt,prec%solve) ! Factorization type: ILU, SuperLU, UMFPACK.
call psb_bcast(icontxt,prec%fill1) ! Fill-in for factorization 1
call psb_bcast(icontxt,prec%thr1) ! Threshold for fact. 1 ILU(T)
call psb_bcast(icontxt,prec%fill) ! Fill-in for factorization
call psb_bcast(icontxt,prec%thr) ! Threshold for fact. ILU(T)
if (psb_toupper(prec%prec) == 'ML') then
call psb_bcast(icontxt,prec%nlev) ! Number of levels in multilevel prec.
call psb_bcast(icontxt,prec%aggrkind) ! smoothed/raw aggregatin
@ -446,8 +446,8 @@ contains
call psb_bcast(icontxt,prec%cmat) ! coarse mat
call psb_bcast(icontxt,prec%csolve) ! Factorization type: ILU, SuperLU, UMFPACK.
call psb_bcast(icontxt,prec%csbsolve) ! Factorization type: ILU, SuperLU, UMFPACK.
call psb_bcast(icontxt,prec%cfill) ! Fill-in for factorization 1
call psb_bcast(icontxt,prec%cthres) ! Threshold for fact. 1 ILU(T)
call psb_bcast(icontxt,prec%cfill) ! Fill-in for factorization
call psb_bcast(icontxt,prec%cthres) ! Threshold for fact. ILU(T)
call psb_bcast(icontxt,prec%cjswp) ! Jacobi sweeps
call psb_bcast(icontxt,prec%athres) ! smoother aggr thresh
end if

@ -450,7 +450,7 @@ contains
m = idim*idim*idim
n = m
nnz = ((n*9)/(np))
if(iam == psb_root_) write(0,'("Generating Matrix (size=",i0x,")...")')n
if(iam == psb_root_) write(0,'("Generating Matrix (size=",i0,")...")')n
!
! Using a simple BLOCK distribution.

@ -450,7 +450,7 @@ contains
m = idim*idim*idim
n = m
nnz = ((n*9)/(np))
if(iam == psb_root_) write(0,'("Generating Matrix (size=",i0x,")...")')n
if(iam == psb_root_) write(0,'("Generating Matrix (size=",i0,")...")')n
!
! Using a simple BLOCK distribution.

Loading…
Cancel
Save