mirror of
https://github.com/sfilippone/amg4psblas.git
synced 2026-10-06 22:55:12 +00:00
mld2p4:
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.
This commit is contained in:
@@ -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,10 +65,10 @@ subroutine mld_cdiag_bld(a,desc_a,p,info)
|
||||
Implicit None
|
||||
|
||||
! Arguments
|
||||
type(psb_cspmat_type), target :: a
|
||||
type(psb_desc_type), intent(in) :: desc_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
|
||||
integer, intent(out) :: info
|
||||
|
||||
! Local variables
|
||||
Integer :: err_act,ictxt, me, np, n_row, n_col,i
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -80,13 +80,13 @@ subroutine mld_cprecaply(prec,x,y,desc_data,info,trans,work)
|
||||
implicit none
|
||||
|
||||
! Arguments
|
||||
type(psb_desc_type),intent(in) :: desc_data
|
||||
type(mld_cprec_type), intent(in) :: prec
|
||||
type(psb_desc_type),intent(in) :: desc_data
|
||||
type(mld_cprec_type), intent(in) :: prec
|
||||
complex(psb_spk_),intent(in) :: x(:)
|
||||
complex(psb_spk_),intent(inout) :: y(:)
|
||||
integer, intent(out) :: info
|
||||
character(len=1), optional :: trans
|
||||
complex(psb_spk_), optional, target :: work(:)
|
||||
integer, intent(out) :: info
|
||||
character(len=1), optional :: trans
|
||||
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,10 +83,10 @@ subroutine mld_cumf_bld(a,desc_a,p,info)
|
||||
implicit none
|
||||
|
||||
! Arguments
|
||||
type(psb_dspmat_type), intent(inout) :: a
|
||||
type(psb_desc_type), intent(in) :: desc_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
|
||||
integer, intent(out) :: info
|
||||
|
||||
! Local variables
|
||||
integer :: nzt,ictxt,me,np,err_act
|
||||
|
||||
@@ -65,10 +65,10 @@ subroutine mld_ddiag_bld(a,desc_a,p,info)
|
||||
Implicit None
|
||||
|
||||
! Arguments
|
||||
type(psb_dspmat_type), target :: a
|
||||
type(psb_desc_type), intent(in) :: desc_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
|
||||
integer, intent(out) :: info
|
||||
|
||||
! Local variables
|
||||
Integer :: err_act,ictxt, me, np, n_row, n_col,i
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -80,13 +80,13 @@ subroutine mld_dprecaply(prec,x,y,desc_data,info,trans,work)
|
||||
implicit none
|
||||
|
||||
! Arguments
|
||||
type(psb_desc_type),intent(in) :: desc_data
|
||||
type(mld_dprec_type), intent(in) :: prec
|
||||
type(psb_desc_type),intent(in) :: desc_data
|
||||
type(mld_dprec_type), intent(in) :: prec
|
||||
real(psb_dpk_),intent(in) :: x(:)
|
||||
real(psb_dpk_),intent(inout) :: y(:)
|
||||
integer, intent(out) :: info
|
||||
character(len=1), optional :: trans
|
||||
real(psb_dpk_), optional, target :: work(:)
|
||||
integer, intent(out) :: info
|
||||
character(len=1), optional :: trans
|
||||
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
|
||||
|
||||
+32
-32
@@ -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,38 +673,38 @@ 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_desc_type), intent(in), target :: desc_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
|
||||
integer, intent(out) :: info
|
||||
character, intent(in) :: upd
|
||||
integer, intent(out) :: info
|
||||
end subroutine mld_sas_bld
|
||||
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_desc_type), intent(in), target :: desc_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
|
||||
integer, intent(out) :: info
|
||||
character, intent(in) :: upd
|
||||
integer, intent(out) :: info
|
||||
end subroutine mld_das_bld
|
||||
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_desc_type), intent(in), target :: desc_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
|
||||
integer, intent(out) :: info
|
||||
character, intent(in) :: upd
|
||||
integer, intent(out) :: info
|
||||
end subroutine mld_cas_bld
|
||||
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_desc_type), intent(in), target :: desc_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
|
||||
integer, intent(out) :: info
|
||||
character, intent(in) :: upd
|
||||
integer, intent(out) :: info
|
||||
end subroutine mld_zas_bld
|
||||
end interface
|
||||
|
||||
@@ -895,34 +895,34 @@ module mld_inner_mod
|
||||
subroutine mld_sumf_bld(a,desc_a,p,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), intent(inout) :: a
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
type(psb_sspmat_type), intent(inout) :: a
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
type(mld_sbaseprec_type), intent(inout) :: p
|
||||
integer, intent(out) :: info
|
||||
integer, intent(out) :: info
|
||||
end subroutine mld_sumf_bld
|
||||
subroutine mld_dumf_bld(a,desc_a,p,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), intent(inout) :: a
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
type(psb_dspmat_type), intent(inout) :: a
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
type(mld_dbaseprec_type), intent(inout) :: p
|
||||
integer, intent(out) :: info
|
||||
integer, intent(out) :: info
|
||||
end subroutine mld_dumf_bld
|
||||
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_desc_type), intent(in) :: desc_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
|
||||
integer, intent(out) :: info
|
||||
end subroutine mld_cumf_bld
|
||||
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_desc_type), intent(in) :: desc_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
|
||||
integer, intent(out) :: info
|
||||
end subroutine mld_zumf_bld
|
||||
end interface
|
||||
|
||||
|
||||
@@ -65,10 +65,10 @@ subroutine mld_sdiag_bld(a,desc_a,p,info)
|
||||
Implicit None
|
||||
|
||||
! Arguments
|
||||
type(psb_sspmat_type), target :: a
|
||||
type(psb_desc_type), intent(in) :: desc_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
|
||||
integer, intent(out) :: info
|
||||
|
||||
! Local variables
|
||||
Integer :: err_act,ictxt, me, np, n_row, n_col,i
|
||||
|
||||
@@ -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,10 +65,10 @@ subroutine mld_zdiag_bld(a,desc_a,p,info)
|
||||
Implicit None
|
||||
|
||||
! Arguments
|
||||
type(psb_zspmat_type), target :: a
|
||||
type(psb_desc_type), intent(in) :: desc_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
|
||||
integer, intent(out) :: info
|
||||
|
||||
! Local variables
|
||||
Integer :: err_act,ictxt, me, np, n_row, n_col,i
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -80,13 +80,13 @@ subroutine mld_zprecaply(prec,x,y,desc_data,info,trans,work)
|
||||
implicit none
|
||||
|
||||
! Arguments
|
||||
type(psb_desc_type),intent(in) :: desc_data
|
||||
type(mld_zprec_type), intent(in) :: prec
|
||||
type(psb_desc_type),intent(in) :: desc_data
|
||||
type(mld_zprec_type), intent(in) :: prec
|
||||
complex(psb_dpk_),intent(in) :: x(:)
|
||||
complex(psb_dpk_),intent(inout) :: y(:)
|
||||
integer, intent(out) :: info
|
||||
character(len=1), optional :: trans
|
||||
complex(psb_dpk_), optional, target :: work(:)
|
||||
integer, intent(out) :: info
|
||||
character(len=1), optional :: trans
|
||||
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,10 +83,10 @@ subroutine mld_zumf_bld(a,desc_a,p,info)
|
||||
implicit none
|
||||
|
||||
! Arguments
|
||||
type(psb_dspmat_type), intent(inout) :: a
|
||||
type(psb_desc_type), intent(in) :: desc_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
|
||||
integer, intent(out) :: info
|
||||
|
||||
! Local variables
|
||||
integer :: nzt,ictxt,me,np,err_act
|
||||
|
||||
@@ -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,10 +410,10 @@ 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
|
||||
call read_data(prec%athres,5) ! smoother aggr thresh
|
||||
end if
|
||||
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,10 +446,10 @@ 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
|
||||
call psb_bcast(icontxt,prec%athres) ! smoother aggr thresh
|
||||
end if
|
||||
|
||||
end subroutine get_parms
|
||||
|
||||
@@ -55,8 +55,8 @@ program df_sample
|
||||
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 :: 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)
|
||||
@@ -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,10 +446,10 @@ 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
|
||||
call psb_bcast(icontxt,prec%athres) ! smoother aggr thresh
|
||||
end if
|
||||
|
||||
end subroutine get_parms
|
||||
|
||||
@@ -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,10 +446,10 @@ 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
|
||||
call psb_bcast(icontxt,prec%athres) ! smoother aggr thresh
|
||||
end if
|
||||
|
||||
end subroutine get_parms
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user