Changes to internal docs for NaturalDocs processing.

stopcriterion
Salvatore Filippone 17 years ago
parent 074df52d5c
commit afa4aece18

@ -1,8 +1,6 @@
Changelog. A lot less detailed than usual, at least for past
history.
2007/12/15: Fixed internal documentation.
2007/11/15: Created pargen example.
2007/11/14: Fix INTENT(IN) on X vector in preconditioner routines.

@ -4,7 +4,7 @@
# must be specified here with absolute pathnames #
# #
##########################################################
PSBLASDIR=$(HOME)/NUMERICAL/PSBLAS2/psblas2-dev
PSBLASDIR=$(HOME)/NUMERICAL/PSBLAS2/psblas2
include $(PSBLASDIR)/Make.inc
##########################################################

@ -34,14 +34,14 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_daggrmap_bld.f90.
! File: mld_daggrmap_bld.f90
!
! Subroutine: mld_daggrmap_bld.
! Version: real.
! Subroutine: mld_daggrmap_bld
! Version: real
!
! This routine builds a mapping from the row indices of the fine-level matrix
! to the row indices of the coarse-level matrix, according to a decoupled
! aggregation algorithm. This mapping will be used by mld_daggrmat_asb to
! aggregation algorithm. This mapping will be used by mld_daggrmat_asb to
! build the coarse-level matrix.
!
! The aggregation algorithm is a parallel version of that described in
@ -71,7 +71,6 @@
! adjacency graph of the coarse-level matrix.
! info - integer, output.
! Error code.
!
subroutine mld_daggrmap_bld(aggr_type,a,desc_a,nlaggr,ilaggr,info)
use psb_base_mod
@ -103,7 +102,7 @@ subroutine mld_daggrmap_bld(aggr_type,a,desc_a,nlaggr,ilaggr,info)
name = 'mld_aggrmap_bld'
call psb_erractionsave(err_act)
!
! Note. At the time being we are ignoring aggr_type so
! For the time being we are ignoring aggr_type so
! that we only have decoupled aggregation. This might
! change in the future.
!
@ -144,11 +143,11 @@ subroutine mld_daggrmap_bld(aggr_type,a,desc_a,nlaggr,ilaggr,info)
apnt => atmp
end if
! Note: -(nr+1) Untouched as yet
!
! Meaning of variables in the loops beloc
! -(nr+1) Untouched as yet
! -i 1<=i<=nr Adjacent to aggregate i
! i 1<=i<=nr Belonging to aggregate i
!
! Phase one: group nodes together.
! Very simple minded strategy.

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_daggrmat_asb.f90.
! File: mld_daggrmat_asb.f90
!
! Subroutine: mld_daggrmat_asb.
! Version: real.
! Subroutine: mld_daggrmat_asb
! Version: real
!
! This routine builds a coarse-level matrix A_C from a fine-level matrix A
! by using a Galerkin approach, i.e.

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_daggrmat_raw_asb.F90.
! File: mld_daggrmat_raw_asb.F90
!
! Subroutine: mld_daggrmat_raw_asb.
! Version: real.
! Subroutine: mld_daggrmat_raw_asb
! Version: real
!
! This routine builds a coarse-level matrix A_C from a fine-level matrix A
! by using a Galerkin approach, i.e.

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_daggrmat_smth_asb.F90.
! File: mld_daggrmat_smth_asb.F90
!
! Subroutine: mld_daggrmat_smth_asb.
! Version: real.
! Subroutine: mld_daggrmat_smth_asb
! Version: real
!
! This routine builds a coarse-level matrix A_C from a fine-level matrix A
! by using a Galerkin approach, i.e.

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_dasmat_bld.f90.
! File: mld_dasmat_bld.f90
!
! Subroutine: mld_dasmat_bld.
! Version: real.
! Subroutine: mld_dasmat_bld
! Version: real
!
! This routine builds the communication descriptor associated to the extended
! matrices that form the Additive Schwarz (AS) preconditioner and retrieves

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_dbaseprec_aply.f90.
! File: mld_dbaseprec_aply.f90
!
! Subroutine: mld_dbaseprec_aply.
! Version: real.
! Subroutine: mld_dbaseprec_aply
! Version: real
!
! This routine applies a base preconditioner by computing
!
@ -56,7 +56,7 @@
! Arguments:
! alpha - real(kind(0.d0)), input.
! The scalar alpha.
! prec - type(mld_dbaseprc_type), input.
! prec - type(<mld_dbaseprc_type>), input.
! The base preconditioner data structure containing the local part
! of the preconditioner K.
! x - real(kind(0.d0)), dimension(:), input.
@ -189,7 +189,7 @@ subroutine mld_dbaseprec_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
else
!
! Note: currently trans is unused
! Currently trans is unused
!
n_row = psb_cd_get_local_rows(prec%desc_data)

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_dbaseprec_bld.f90.
! File: mld_dbaseprec_bld.f90
!
! Subroutine: mld_dbaseprec_bld.
! Version: real.
! Subroutine: mld_dbaseprec_bld
! Version: real
!
! This routine builds the 'base preconditioner' corresponding to a certain level
! of a multilevel preconditioner, according to the requirements made by the

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File mld_dbjac_aply.f90.
! File mld_dbjac_aply.f90
!
! Subroutine: mld_dbjac_aply.
! Version: real.
! Subroutine: mld_dbjac_aply
! Version: real
!
! This routine computes
!

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_dbjac_bld.f90.
! File: mld_dbjac_bld.f90
!
! Subroutine: mld_dbjac_bld.
! Version: real.
! Subroutine: mld_dbjac_bld
! Version: real
!
! This routine builds the local extended matrix associated to an Additive
! Schwarz preconditioner and computes an LU or incomplete LU factorization

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_ddiagsc_bld.f90.
! File: mld_ddiagsc_bld.f90
!
! Subroutine: mld_ddiag_bld.
! Version: real.
! Subroutine: mld_ddiag_bld
! Version: real
!
! This routine builds the diagonal preconditioner corresponding to a given
! sparse matrix A.

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_dilu_bld.f90.
! File: mld_dilu_bld.f90
!
! Subroutine: mld_dilu_bld.
! Version: real.
! Subroutine: mld_dilu_bld
! Version: real
!
! This routine computes an incomplete LU (ILU) factorization of the local part
! of the matrix stored into a. This factorization is used to build the 'base
@ -79,7 +79,7 @@
! incomplete L and U factors (without their diagonals), and p%d
! contains the diagonal of the incomplete U factor. For more
! details on p see its description in mld_prec_type.f90.
! info - integer, output.
! info - integer, output.
! Error code.
! blck - type(psb_dspmat_type), input, optional.
! The sparse matrix structure containing the remote rows of the

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_dilu_fct.f90.
! File: mld_dilu_fct.f90
!
! Subroutine: mld_dilu_fct.
! Version: real.
! Subroutine: mld_dilu_fct
! Version: real
! Contains: mld_dilu_fctint, ilu_copyin
!
! This routine computes either the ILU(0) or the MILU(0) factorization of the
@ -202,8 +202,8 @@ subroutine mld_dilu_fct(ialg,a,l,u,d,info,blck)
contains
!
! Subroutine: mld_dilu_fctint.
! Version: real.
! Subroutine: mld_dilu_fctint
! Version: real
! Note: internal subroutine of mld_dilu_fct.
!
! This routine computes either the ILU(0) or the MILU(0) factorization of the
@ -463,8 +463,8 @@ contains
end subroutine mld_dilu_fctint
!
! Subroutine: ilu_copyin.
! Version: real.
! Subroutine: ilu_copyin
! Version: real
! Note: internal subroutine of mld_dilu_fct.
!
! This routine copies a row of a sparse matrix A, stored in the psb_dspmat_type

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_diluk_fct.f90.
! File: mld_diluk_fct.f90
!
! Subroutine: mld_diluk_fct.
! Version: real.
! Subroutine: mld_diluk_fct
! Version: real
! Contains: mld_diluk_fctint, iluk_copyin, iluk_fact, iluk_copyout.
!
! This routine computes either the ILU(k) or the MILU(k) factorization of the
@ -199,9 +199,9 @@ subroutine mld_diluk_fct(fill_in,ialg,a,l,u,d,info,blck)
contains
!
! Subroutine: mld_diluk_fctint.
! Version: real.
! Note: internal subroutine of mld_diluk_fct.
! Subroutine: mld_diluk_fctint
! Version: real
! Note: internal subroutine of mld_diluk_fct
!
! This routine computes either the ILU(k) or the MILU(k) factorization of the
! local part of the matrix stored into a. These factorizations are used to build
@ -413,9 +413,9 @@ contains
end subroutine mld_diluk_fctint
!
! Subroutine: iluk_copyin.
! Version: real.
! Note: internal subroutine of mld_diluk_fct.
! Subroutine: iluk_copyin
! Version: real
! Note: internal subroutine of mld_diluk_fct
!
! This routine copies a row of a sparse matrix A, stored in the sparse matrix
! structure a, into the array row and stores into a heap the column indices of
@ -562,9 +562,9 @@ contains
end subroutine iluk_copyin
!
! Subroutine: iluk_fact.
! Version: real.
! Note: internal subroutine of mld_diluk_fct.
! Subroutine: iluk_fact
! Version: real
! Note: internal subroutine of mld_diluk_fct
!
! This routine does an elimination step of the ILU(k) factorization on a
! single matrix row (see the calling routine mld_iluk_fctint).
@ -714,9 +714,9 @@ contains
end subroutine iluk_fact
!
! Subroutine: iluk_copyout.
! Version: real.
! Note: internal subroutine of mld_diluk_fct.
! Subroutine: iluk_copyout
! Version: real
! Note: internal subroutine of mld_diluk_fct
!
! This routine copies a matrix row, computed by iluk_fact by applying an
! elimination step of the ILU(k) factorization, into the arrays laspk, uaspk,

@ -34,11 +34,11 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_dilut_fct.f90.
! File: mld_dilut_fct.f90
!
! Subroutine: mld_dilut_fct.
! Version: real.
! Contains: mld_dilut_fctint, ilut_copyin, ilut_fact, ilut_copyout.
! Subroutine: mld_dilut_fct
! Version: real
! Contains: mld_dilut_fctint, ilut_copyin, ilut_fact, ilut_copyout
!
! This routine computes the ILU(k,t) factorization of the local part of the
! matrix stored into a. These factorization is used to build the 'base
@ -198,9 +198,9 @@ subroutine mld_dilut_fct(fill_in,thres,ialg,a,l,u,d,info,blck)
contains
!
! Subroutine: mld_dilut_fctint.
! Version: real.
! Note: internal subroutine of mld_dilut_fct.
! Subroutine: mld_dilut_fctint
! Version: real
! Note: internal subroutine of mld_dilut_fct
!
! This routine computes the ILU(k,t) factorization of the local part of the
! matrix stored into a. These factorization is used to build the 'base
@ -399,9 +399,9 @@ contains
end subroutine mld_dilut_fctint
!
! Subroutine: ilut_copyin.
! Version: real.
! Note: internal subroutine of mld_dilut_fct.
! Subroutine: ilut_copyin
! Version: real
! Note: internal subroutine of mld_dilut_fct
!
! This routine performs the following tasks:
! - copying a row of a sparse matrix A, stored in the sparse matrix structure a,
@ -594,9 +594,9 @@ contains
end subroutine ilut_copyin
!
! Subroutine: ilut_fact.
! Version: real.
! Note: internal subroutine of mld_dilut_fct.
! Subroutine: ilut_fact
! Version: real
! Note: internal subroutine of mld_dilut_fct
!
! This routine does an elimination step of the ILU(k,t) factorization on a single
! matrix row (see the calling routine mld_ilut_fctint). Actually, only the dropping
@ -757,9 +757,9 @@ contains
end subroutine ilut_fact
!
! Subroutine: ilut_copyout.
! Version: real.
! Note: internal subroutine of mld_dilut_fct.
! Subroutine: ilut_copyout
! Version: real
! Note: internal subroutine of mld_dilut_fct
!
! This routine copies a matrix row, computed by ilut_fact by applying an
! elimination step of the ILU(k,t) factorization, into the arrays laspk,

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_dmlprec_aply.f90.
! File: mld_dmlprec_aply.f90
!
! Subroutine: mld_dmlprec_aply.
! Version: real.
! Subroutine: mld_dmlprec_aply
! Version: real
!
! This routine computes
!

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_dmlprec_bld.f90.
! File: mld_dmlprec_bld.f90
!
! Subroutine: mld_dmlprec_bld.
! Version: real.
! Subroutine: mld_dmlprec_bld
! Version: real
!
! This routine builds the base preconditioner corresponding to the current
! level of the multilevel preconditioner.

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_dprec_aply.f90.
! File: mld_dprec_aply.f90
!
! Subroutine: mld_dprec_aply.
! Version: real.
! Subroutine: mld_dprec_aply
! Version: real
!
! This routine applies the preconditioner built by mld_dprecbld, i.e. it computes
!
@ -153,10 +153,9 @@ subroutine mld_dprec_aply(prec,x,y,desc_data,info,trans,work)
end subroutine mld_dprec_aply
! File: mld_dprec_aply.f90.
!
! Subroutine: mld_dprec_aply1.
! Version: real.
! Subroutine: mld_dprec_aply1
! Version: real
!
! Applies the preconditioner built by mld_dprecbld, i.e. computes
!

@ -34,11 +34,11 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_dprecbld.f90.
! File: mld_dprecbld.f90
!
! Subroutine: mld_dprecbld.
! Version: real.
! Contains: subroutine init_baseprc_av.
! Subroutine: mld_dprecbld
! Version: real
! Contains: subroutine init_baseprc_av
!
! This routine builds the preconditioner according to the requirements made by
! the user trough the subroutines mld_dprecinit and mld_dprecset.

@ -36,10 +36,10 @@
!!$
!!$
!!$
! File: mld_dprecfree.f90.
! File: mld_dprecfree.f90
!
! Subroutine: mld_dprecfree.
! Version: real.
! Subroutine: mld_dprecfree
! Version: real
!
! This routine deallocates the preconditioner data structure.
!

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_dprecinit.f90.
! File: mld_dprecinit.f90
!
! Subroutine: mld_dprecinit.
! Version: real.
! Subroutine: mld_dprecinit
! Version: real
!
! This routine allocates and initializes the preconditioner data structure,
! according to the preconditioner type chosen by the user.

@ -7,7 +7,7 @@
!!$ (C) Copyright 2007 Alfredo Buttari University of Rome Tor Vergata
!!$ Pasqua D'Ambra ICAR-CNR, Naples
!!$ Daniela di Serafino Second University of Naples
!!$ Salvatore Filippone University of Rome Tor Vergata
!!$ Salvatore Filippone University of Rome Tor Vergata
!!$
!!$ Redistribution and use in source and binary forms, with or without
!!$ modification, are permitted provided that the following conditions
@ -34,10 +34,9 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_dprecset.f90.
! File: mld_dprecset.f90
!
! Subroutines: mld_dprecseti, mld_dprecsetc, mld_dprecsetd.
! mld_dprecsetc contains get_stringval.
! Subroutine: mld_dprecseti
!
! These routines set the parameters defining the preconditioner. More precisely,
! the parameter identified by 'what' is assigned the value contained in 'val'.
@ -54,8 +53,7 @@
! The number identifying the parameter to be set.
! A mnemonic constant has been associated to each of these
! numbers, as reported in MLD2P4 user's guide.
! val - integer in mld_dprecseti, string(len=*) in mld_dprecsetc,
! real(kind(1.d0)) in mld_dprecsetd, input.
! val - integer, input.
! The value of the parameter to be set. The list of allowed
! values is reported in MLD2P4 user's guide.
! info - integer, output.
@ -212,6 +210,31 @@ subroutine mld_dprecseti(p,what,val,info,ilev)
end subroutine mld_dprecseti
!
! Subroutine: mld_dprecsetc
!
!
! Arguments:
! p - type(mld_dprec_type), input/output.
! The preconditioner data structure.
! what - integer, input.
! The number identifying the parameter to be set.
! A mnemonic constant has been associated to each of these
! numbers, as reported in MLD2P4 user's guide.
! val - string(len=*) input.
! The value of the parameter to be set. The list of allowed
! values is reported in MLD2P4 user's guide.
! info - integer, output.
! Error code.
! ilev - integer, optional, input.
! For the multilevel preconditioner, the level at which the
! preconditioner parameter has to be set.
! If nlev is not present, the parameter identified by 'what'
! is set at all the levels but the coarsest one, except when
! 'what' has the values mld_coarse_mat_, mld_coarse_solve_,
! mld_coarse_sweeps_, mld_coarse_fill_in_, which refer to the
! coarsest level.
!
subroutine mld_dprecsetc(p,what,string,info,ilev)
use psb_base_mod
@ -373,6 +396,32 @@ contains
end subroutine get_stringval
end subroutine mld_dprecsetc
!
! Subroutine: mld_dprecsetd
!
!
! Arguments:
! p - type(mld_dprec_type), input/output.
! The preconditioner data structure.
! what - integer, input.
! The number identifying the parameter to be set.
! A mnemonic constant has been associated to each of these
! numbers, as reported in MLD2P4 user's guide.
! val - real(kind(1.d0))
! The value of the parameter to be set. The list of allowed
! values is reported in MLD2P4 user's guide.
! info - integer, output.
! Error code.
! ilev - integer, optional, input.
! For the multilevel preconditioner, the level at which the
! preconditioner parameter has to be set.
! If nlev is not present, the parameter identified by 'what'
! is set at all the levels but the coarsest one, except when
! 'what' has the values mld_coarse_mat_, mld_coarse_solve_,
! mld_coarse_sweeps_, mld_coarse_fill_in_, which refer to the
! coarsest level.
!
subroutine mld_dprecsetd(p,what,val,info,ilev)
use psb_base_mod

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_dslu_bld.f90.
! File: mld_dslu_bld.f90
!
! Subroutine: mld_dslu_bld.
! Version: real.
! Subroutine: mld_dslu_bld
! Version: real
!
! This routine computes the LU factorization of the local part of the matrix
! stored into a, by using SuperLU.

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_dslu_bld.f90.
! File: mld_dslu_bld.f90
!
! Subroutine: mld_dslu_bld.
! Version: real.
! Subroutine: mld_dslu_bld
! Version: real
!
! This routine computes the LU factorization of of a distributed matrix,
! by using SuperLU_DIST.

@ -34,11 +34,11 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_dsp_renum.f90.
! File: mld_dsp_renum.f90
!
! Subroutine: mld_dsp_renum.
! Version: real.
! Contains: gps_reduction.
! Subroutine: mld_dsp_renum
! Version: real
! Contains: gps_reduction
!
! This routine reorders the rows and the columns of the local part of a sparse
! distributed matrix, according to one of the following criteria:
@ -78,7 +78,7 @@
! atmp - type(psb_dspmat_type), output.
! The sparse matrix structure containing the whole local reordered
! matrix.
! info - integer, output.
! info - integer, output.
! Error code.
!
subroutine mld_dsp_renum(a,desc_a,blck,p,atmp,info)
@ -266,8 +266,8 @@ subroutine mld_dsp_renum(a,desc_a,blck,p,atmp,info)
contains
!
! Subroutine: gps_reduction.
! Note: internal subroutine of mld_dsp_renum.
! Subroutine: gps_reduction
! Note: internal subroutine of mld_dsp_renum
!
! Compute a renumbering of the row and column indices of a sparse matrix
! according to the Gibbs-Poole-Stockmeyer band reduction algorithm. The

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_dumf_bld.f90.
! File: mld_dumf_bld.f90
!
! Subroutine: mld_dumf_bld.
! Version: real.
! Subroutine: mld_dumf_bld
! Version: real
!
! This routine computes the LU factorization of the local part of the matrix
! stored into a, by using UMFPACK.
@ -70,7 +70,7 @@
! p%iprcparm(mld_umf_symptr_) and p%iprcparm(mld_umf_numptr_),
! to the data structures used by UMFPACK for computing the LU
! factorization.
! info - integer, output.
! info - integer, output.
! Error code.
!
subroutine mld_dumf_bld(a,desc_a,p,info)

@ -34,9 +34,9 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_prec_mod.f90.
! File: mld_prec_mod.f90
!
! Module: mld_prec_mod.
! Module: mld_prec_mod
!
! This module defines the interfaces to the real and complex versions of the
! MLD2P4 routines.

@ -34,9 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_prec_type.f90.
! File: mld_prec_type.f90
!
! Module: mld_prec_type.
! package: mld_prec_type
! Data structure(s) for sparse matrices
!
! This module defines:
! - the mld_prec_type data structure containing the preconditioner;
@ -62,6 +63,8 @@ module mld_prec_type
use psb_base_mod, only : psb_dspmat_type, psb_zspmat_type, psb_desc_type,&
& psb_sizeof
!
! type: mld_dprec_type
!
! mld_dprec_type and mld_zprec_type are the real and complex preconditioner
! data structures. In the following description 'd' and 'z' are omitted.
@ -77,14 +80,15 @@ module mld_prec_type
! The levels are numbered in increasing order starting from the finest
! one, i.e. level 1 is the finest level and A(1) is the matrix A.
!
! Details on mld_prec_type:
!
! baseprecv - type(mld_dbaseprc_type), dimension(:), allocatable.
! baseprecv(ilev) is the base preconditioner at level ilev.
!
! Note that number of levels = size(baseprecv(:)).
!| type mld_dprec_type
!| type(mld_dbaseprc_type), allocatable :: baseprecv(:)
!| end type mld_dprec_type
!
! baseprecv(ilev) is the base preconditioner at level ilev.
! The number of levels is given by size(baseprecv(:)).
!
! Details on mld_baseprc_type:
! type: mld_dbaseprc_type
!
! av - type(psb_dspmat_type), dimension(:), allocatable(:).
! The sparse matrices needed to apply the preconditioner at
@ -148,7 +152,6 @@ module mld_prec_type
! are stored in data structures provided by UMFPACK or SuperLU_dist and pointed by
! iprcparm(mld_umf_ptr) or iprcparm(mld_slu_ptr), respectively.
!
!
! Preconditioner data types
!
@ -460,8 +463,8 @@ contains
!
!
! Subroutine: mld_out_prec_descr.
! Version: real.
! Subroutine: mld_out_prec_descr
! Version: real
!
! This routine prints to the standard output a description of the
! preconditioner.
@ -483,8 +486,8 @@ contains
end subroutine mld_zout_prec_descr
!
! Subroutine: mld_file_prec_descr.
! Version: real.
! Subroutine: mld_file_prec_descr
! Version: real
!
! This routine prints to a file a description of the preconditioner.
!

@ -34,7 +34,7 @@
* POSSIBILITY OF SUCH DAMAGE.
*
*
* File: mld_slu_impl.c.
* File: mld_slu_impl.c
*
* Functions: mld_dslu_factor_, mld_dslu_solve_, mld_dslu_free_.
*

@ -34,7 +34,7 @@
* POSSIBILITY OF SUCH DAMAGE.
*
*
* File: mld_slud_impl.c.
* File: mld_slud_impl.c
*
* Functions: mld_dsludist_factor_, mld_dsludist_solve_, mld_dsludist_free_.
*

@ -34,7 +34,7 @@
* POSSIBILITY OF SUCH DAMAGE.
*
*
* File: mld_umf_impl.c.
* File: mld_umf_impl.c
*
* Functions: mld_dumf_factor_, mld_dumf_solve_, mld_umf_free_.
*

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_zaggrmap_bld.f90.
! File: mld_zaggrmap_bld.f90
!
! Subroutine: mld_zaggrmap_bld.
! Version: complex.
! Subroutine: mld_zaggrmap_bld
! Version: complex
!
! This routine builds a mapping from the row indices of the fine-level matrix
! to the row indices of the coarse-level matrix, according to a decoupled

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_zaggrmat_asb.f90.
! File: mld_zaggrmat_asb.f90
!
! Subroutine: mld_zaggrmat_asb.
! Version: complex.
! Subroutine: mld_zaggrmat_asb
! Version: complex
!
! This routine builds a coarse-level matrix A_C from a fine-level matrix A
! by using a Galerkin approach, i.e.

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_zaggrmat_raw_asb.F90.
! File: mld_zaggrmat_raw_asb.F90
!
! Subroutine: mld_zaggrmat_raw_asb.
! Version: complex.
! Subroutine: mld_zaggrmat_raw_asb
! Version: complex
!
! This routine builds a coarse-level matrix A_C from a fine-level matrix A
! by using a Galerkin approach, i.e.

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_zaggrmat_smth_asb.F90.
! File: mld_zaggrmat_smth_asb.F90
!
! Subroutine: mld_zaggrmat_smth_asb.
! Version: complex.
! Subroutine: mld_zaggrmat_smth_asb
! Version: complex
!
! This routine builds a coarse-level matrix A_C from a fine-level matrix A
! by using a Galerkin approach, i.e.

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_zasmat_bld.f90.
! File: mld_zasmat_bld.f90
!
! Subroutine: mld_zasmat_bld.
! Version: complex.
! Subroutine: mld_zasmat_bld
! Version: complex
!
! This routine builds the communication descriptor associated to the extended
! matrices that form the Additive Schwarz (AS) preconditioner and retrieves

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_zbaseprec_aply.f90.
! File: mld_zbaseprec_aply.f90
!
! Subroutine: mld_zbaseprec_aply.
! Version: complex.
! Subroutine: mld_zbaseprec_aply
! Version: complex
!
! This routine applies a base preconditioner by computing
!

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_zbaseprec_bld.f90.
! File: mld_zbaseprec_bld.f90
!
! Subroutine: mld_zbaseprec_bld.
! Version: complex.
! Subroutine: mld_zbaseprec_bld
! Version: complex
!
! This routine builds the 'base preconditioner' corresponding to a certain level
! of a multilevel preconditioner, according to the requirements made by the

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File mld_zbjac_aply.f90.
! File mld_zbjac_aply.f90
!
! Subroutine: mld_zbjac_aply.
! Version: complex.
! Subroutine: mld_zbjac_aply
! Version: complex
!
! This routine computes
!

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_zbjac_bld.f90.
! File: mld_zbjac_bld.f90
!
! Subroutine: mld_zbjac_bld.
! Version: complex.
! Subroutine: mld_zbjac_bld
! Version: complex
!
! This routine builds the local extended matrix associated to an Additive
! Schwarz preconditioner and computes an LU or incomplete LU factorization

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_ddiagsc_bld.f90.
! File: mld_zdiagsc_bld.f90
!
! Subroutine: mld_ddiag_bld.
! Version: complex.
! Subroutine: mld_zdiag_bld
! Version: complex
!
! This routine builds the diagonal preconditioner corresponding to a given
! sparse matrix A.

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_zilu_bld.f90.
! File: mld_zilu_bld.f90
!
! Subroutine: mld_zilu_bld.
! Version: complex.
! Subroutine: mld_zilu_bld
! Version: complex
!
! This routine computes an incomplete LU (ILU) factorization of the local part
! of the matrix stored into a. This factorization is used to build the 'base
@ -79,7 +79,7 @@
! incomplete L and U factors (without their diagonals), and p%d
! contains the diagonal of the incomplete U factor. For more
! details on p see its description in mld_prec_type.f90.
! info - integer, output.
! info - integer, output.
! Error code.
! blck - type(psb_zspmat_type), input, optional.
! The sparse matrix structure containing the remote rows of the

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_dilu_fct.f90.
! File: mld_dilu_fct.f90
!
! Subroutine: mld_zilu_fct.
! Version: complex.
! Subroutine: mld_zilu_fct
! Version: complex
! Contains: mld_zilu_fctint, ilu_copyin
!
! This routine computes either the ILU(0) or the MILU(0) factorization of the
@ -201,9 +201,9 @@ subroutine mld_zilu_fct(ialg,a,l,u,d,info,blck)
contains
!
! Subroutine: mld_zilu_fctint.
! Version: complex.
! Note: internal subroutine of mld_zilu_fct.
! Subroutine: mld_zilu_fctint
! Version: complex
! Note: internal subroutine of mld_zilu_fct
!
! This routine computes either the ILU(0) or the MILU(0) factorization of the
! local part of the matrix stored into a. These factorizations are used to build
@ -462,9 +462,9 @@ contains
end subroutine mld_zilu_fctint
!
! Subroutine: ilu_copyin.
! Version: complex.
! Note: internal subroutine of mld_zilu_fct.
! Subroutine: ilu_copyin
! Version: complex
! Note: internal subroutine of mld_zilu_fct
!
! This routine copies a row of a sparse matrix A, stored in the psb_dspmat_type
! data structure a, into the arrays laspk and uaspk and into the scalar variable

@ -34,11 +34,11 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_ziluk_fct.f90.
! File: mld_ziluk_fct.f90
!
! Subroutine: mld_ziluk_fct.
! Version: complex.
! Contains: mld_ziluk_fctint, iluk_copyin, iluk_fact, iluk_copyout.
! Subroutine: mld_ziluk_fct
! Version: complex
! Contains: mld_ziluk_fctint, iluk_copyin, iluk_fact, iluk_copyout
!
! This routine computes either the ILU(k) or the MILU(k) factorization of the
! local part of the matrix stored into a. These factorizations are used to
@ -198,9 +198,9 @@ subroutine mld_ziluk_fct(fill_in,ialg,a,l,u,d,info,blck)
contains
!
! Subroutine: mld_ziluk_fctint.
! Version: complex.
! Note: internal subroutine of mld_ziluk_fct.
! Subroutine: mld_ziluk_fctint
! Version: complex
! Note: internal subroutine of mld_ziluk_fct
!
! This routine computes either the ILU(k) or the MILU(k) factorization of the
! local part of the matrix stored into a. These factorizations are used to build
@ -412,9 +412,9 @@ contains
end subroutine mld_ziluk_fctint
!
! Subroutine: iluk_copyin.
! Version: complex.
! Note: internal subroutine of mld_ziluk_fct.
! Subroutine: iluk_copyin
! Version: complex
! Note: internal subroutine of mld_ziluk_fct
!
! This routine copies a row of a sparse matrix A, stored in the sparse matrix
! structure a, into the array row and stores into a heap the column indices of
@ -561,9 +561,9 @@ contains
end subroutine iluk_copyin
!
! Subroutine: iluk_fact.
! Version: complex.
! Note: internal subroutine of mld_ziluk_fct.
! Subroutine: iluk_fact
! Version: complex
! Note: internal subroutine of mld_ziluk_fct
!
! This routine does an elimination step of the ILU(k) factorization on a
! single matrix row (see the calling routine mld_iluk_fctint).
@ -712,9 +712,9 @@ contains
end subroutine iluk_fact
!
! Subroutine: iluk_copyout.
! Version: complex.
! Note: internal subroutine of mld_ziluk_fct.
! Subroutine: iluk_copyout
! Version: complex
! Note: internal subroutine of mld_ziluk_fct
!
! This routine copies a matrix row, computed by iluk_fact by applying an
! elimination step of the ILU(k) factorization, into the arrays laspk, uaspk,

@ -34,11 +34,11 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_zilut_fct.f90.
! File: mld_zilut_fct.f90
!
! Subroutine: mld_zilut_fct.
! Version: real.
! Contains: mld_zilut_fctint, ilut_copyin, ilut_fact, ilut_copyout.
! Subroutine: mld_zilut_fct
! Version: real
! Contains: mld_zilut_fctint, ilut_copyin, ilut_fact, ilut_copyout
!
! This routine computes the ILU(k,t) factorization of the local part of the
! matrix stored into a. These factorization is used to build the 'base
@ -197,9 +197,9 @@ subroutine mld_zilut_fct(fill_in,thres,ialg,a,l,u,d,info,blck)
contains
!
! Subroutine: mld_zilut_fctint.
! Version: real.
! Note: internal subroutine of mld_zilut_fct.
! Subroutine: mld_zilut_fctint
! Version: real
! Note: internal subroutine of mld_zilut_fct
!
! This routine computes the ILU(k,t) factorization of the local part of the
! matrix stored into a. These factorization is used to build the 'base
@ -398,9 +398,9 @@ contains
end subroutine mld_zilut_fctint
!
! Subroutine: ilut_copyin.
! Version: complex.
! Note: internal subroutine of mld_zilut_fct.
! Subroutine: ilut_copyin
! Version: complex
! Note: internal subroutine of mld_zilut_fct
!
! This routine performs the following tasks:
! - copying a row of a sparse matrix A, stored in the sparse matrix structure a,
@ -594,9 +594,9 @@ contains
end subroutine ilut_copyin
!
! Subroutine: ilut_fact.
! Version: complex.
! Note: internal subroutine of mld_zilut_fct.
! Subroutine: ilut_fact
! Version: complex
! Note: internal subroutine of mld_zilut_fct
!
! This routine does an elimination step of the ILU(k,t) factorization on a single
! matrix row (see the calling routine mld_ilut_fctint). Actually, only the dropping
@ -757,9 +757,9 @@ contains
end subroutine ilut_fact
!
! Subroutine: ilut_copyout.
! Version: complex.
! Note: internal subroutine of mld_zilut_fct.
! Subroutine: ilut_copyout
! Version: complex
! Note: internal subroutine of mld_zilut_fct
!
! This routine copies a matrix row, computed by ilut_fact by applying an
! elimination step of the ILU(k,t) factorization, into the arrays laspk,

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_zmlprec_aply.f90.
! File: mld_zmlprec_aply.f90
!
! Subroutine: mld_zmlprec_aply.
! Version: complex.
! Subroutine: mld_zmlprec_aply
! Version: complex
!
! This routine computes
!
@ -83,19 +83,19 @@
! baseprecv(ilev)%av - type(psb_zspmat_type), dimension(:), allocatable(:).
! The sparse matrices needed to apply the preconditioner
! at level ilev.
! baseprecv(ilev)%av(mld_l_pr_) - The L factor of the ILU factorization of the
! local diagonal block of A(ilev).
! baseprecv(ilev)%av(mld_u_pr_) - The U factor of the ILU factorization of the
! local diagonal block of A(ilev), except its
! diagonal entries (stored in baseprecv(ilev)%d).
! baseprecv(ilev)%av(mld_ap_nd_) - The entries of the local part of A(ilev)
! outside the diagonal block, for block-Jacobi
! sweeps.
! baseprecv(ilev)%av(mld_ac_) - The local part of the matrix A(ilev).
! baseprecv(ilev)%av(mld_sm_pr_) - The smoother prolongator.
! It maps vectors (ilev) ---> (ilev-1).
! baseprecv(ilev)%av(mld_sm_pr_t_) - The smoother prolongator transpose.
! It maps vectors (ilev-1) ---> (ilev).
! baseprecv(ilev)%av(mld_l_pr_) - The L factor of the ILU factorization of the
! local diagonal block of A(ilev).
! baseprecv(ilev)%av(mld_u_pr_) - The U factor of the ILU factorization of the
! local diagonal block of A(ilev), except its
! diagonal entries (stored in baseprecv(ilev)%d).
! baseprecv(ilev)%av(mld_ap_nd_) - The entries of the local part of A(ilev)
! outside the diagonal block, for block-Jacobi
! sweeps.
! baseprecv(ilev)%av(mld_ac_) - The local part of the matrix A(ilev).
! baseprecv(ilev)%av(mld_sm_pr_) - The smoother prolongator.
! It maps vectors (ilev) ---> (ilev-1).
! baseprecv(ilev)%av(mld_sm_pr_t_) - The smoother prolongator transpose.
! It maps vectors (ilev-1) ---> (ilev).
! baseprecv(ilev)%d - complex(kind(1.d0)), dimension(:), allocatable.
! The diagonal entries of the U factor in the ILU
! factorization of A(ilev).

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_zmlprec_bld.f90.
! File: mld_zmlprec_bld.f90
!
! Subroutine: mld_zmlprec_bld.
! Version: complex.
! Subroutine: mld_zmlprec_bld
! Version: complex
!
! This routine builds the base preconditioner corresponding to the current
! level of the multilevel preconditioner.

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_zprec_aply.f90.
! File: mld_zprec_aply.f90
!
! Subroutine: mld_zprec_aply.
! Version: complex.
! Subroutine: mld_zprec_aply
! Version: complex
!
! This routine applies the preconditioner built by mld_zprecbld, i.e. it computes
!

@ -34,11 +34,11 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_zprecbld.f90.
! File: mld_zprecbld.f90
!
! Subroutine: mld_zprecbld.
! Version: complex.
! Contains: subroutine init_baseprc_av.
! Subroutine: mld_zprecbld
! Version: complex
! Contains: subroutine init_baseprc_av
!
! This routine builds the preconditioner according to the requirements made by
! the user trough the subroutines mld_zprecinit and mld_zprecset.

@ -36,10 +36,10 @@
!!$
!!$
!!$
! File: mld_zprecfree.f90.
! File: mld_zprecfree.f90
!
! Subroutine: mld_zprecfree.
! Version: real.
! Subroutine: mld_zprecfree
! Version: real
!
! This routine deallocates the preconditioner data structure.
!

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_zprecinit.f90.
! File: mld_zprecinit.f90
!
! Subroutine: mld_zprecinit.
! Version: complex.
! Subroutine: mld_zprecinit
! Version: complex
!
! This routine allocates and initializes the preconditioner data structure,
! according to the preconditioner type chosen by the user.

@ -7,7 +7,7 @@
!!$ (C) Copyright 2007 Alfredo Buttari University of Rome Tor Vergata
!!$ Pasqua D'Ambra ICAR-CNR, Naples
!!$ Daniela di Serafino Second University of Naples
!!$ Salvatore Filippone University of Rome Tor Vergata
!!$ Salvatore Filippone University of Rome Tor Vergata
!!$
!!$ Redistribution and use in source and binary forms, with or without
!!$ modification, are permitted provided that the following conditions
@ -34,10 +34,9 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_zprecset.f90.
! File: mld_zprecset.f90
!
! Subroutines: mld_zprecseti, mld_zprecsetc, mld_zprecsetd.
! mld_zprecsetc contains get_stringval.
! Subroutine: mld_zprecseti
!
! These routines set the parameters defining the preconditioner. More precisely,
! the parameter identified by 'what' is assigned the value contained in 'val'.
@ -54,8 +53,7 @@
! The number identifying the parameter to be set.
! A mnemonic constant has been associated to each of these
! numbers, as reported in MLD2P4 user's guide.
! val - integer in mld_zprecseti, string(len=*) in mld_zprecsetc,
! real(kind(1.d0)) in mld_zprecsetd, input.
! val - integer in mld_zprecseti input.
! The value of the parameter to be set. The list of allowed
! values is reported in MLD2P4 user's guide.
! info - integer, output.
@ -212,6 +210,31 @@ subroutine mld_zprecseti(p,what,val,info,ilev)
end subroutine mld_zprecseti
!
! Subroutine: mld_zprecsetc
!
!
! Arguments:
! p - type(mld_zprec_type), input/output.
! The preconditioner data structure.
! what - integer, input.
! The number identifying the parameter to be set.
! A mnemonic constant has been associated to each of these
! numbers, as reported in MLD2P4 user's guide.
! val - string(len=*) input.
! The value of the parameter to be set. The list of allowed
! values is reported in MLD2P4 user's guide.
! info - integer, output.
! Error code.
! ilev - integer, optional, input.
! For the multilevel preconditioner, the level at which the
! preconditioner parameter has to be set.
! If nlev is not present, the parameter identified by 'what'
! is set at all the levels but the coarsest one, except when
! 'what' has the values mld_coarse_mat_, mld_coarse_solve_,
! mld_coarse_sweeps_, mld_coarse_fill_in_, which refer to the
! coarsest level.
!
subroutine mld_zprecsetc(p,what,string,info,ilev)
use psb_base_mod
@ -373,6 +396,32 @@ contains
end subroutine get_stringval
end subroutine mld_zprecsetc
!
! Subroutine: mld_zprecsetd
!
!
! Arguments:
! p - type(mld_zprec_type), input/output.
! The preconditioner data structure.
! what - integer, input.
! The number identifying the parameter to be set.
! A mnemonic constant has been associated to each of these
! numbers, as reported in MLD2P4 user's guide.
! val - real(kind(1.d0))
! The value of the parameter to be set. The list of allowed
! values is reported in MLD2P4 user's guide.
! info - integer, output.
! Error code.
! ilev - integer, optional, input.
! For the multilevel preconditioner, the level at which the
! preconditioner parameter has to be set.
! If nlev is not present, the parameter identified by 'what'
! is set at all the levels but the coarsest one, except when
! 'what' has the values mld_coarse_mat_, mld_coarse_solve_,
! mld_coarse_sweeps_, mld_coarse_fill_in_, which refer to the
! coarsest level.
!
subroutine mld_zprecsetd(p,what,val,info,ilev)
use psb_base_mod

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_zslu_bld.f90.
! File: mld_zslu_bld.f90
!
! Subroutine: mld_zslu_bld.
! Version: complex.
! Subroutine: mld_zslu_bld
! Version: complex
!
! This routine computes the LU factorization of the local part of the matrix
! stored into a, by using SuperLU.

@ -34,7 +34,7 @@
* POSSIBILITY OF SUCH DAMAGE.
*
*
* File: mld_zslu_impl.c.
* File: mld_zslu_impl.c
*
* Functions: mld_zslu_factor_, mld_zslu_solve_, mld_zslu_free_.
*

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_zslu_bld.f90.
! File: mld_zslu_bld.f90
!
! Subroutine: mld_zslu_bld.
! Version: real.
! Subroutine: mld_zslu_bld
! Version: real
!
! This routine computes the LU factorization of of a distributed matrix,
! by using SuperLU_DIST.

@ -34,7 +34,7 @@
* POSSIBILITY OF SUCH DAMAGE.
*
*
* File: mld_zslud_impl.c.
* File: mld_zslud_impl.c
*
* Functions: mld_zsludist_factor_, mld_zsludist_solve_, mld_zsludist_free_.
*

@ -34,11 +34,11 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_zsp_renum.f90.
! File: mld_zsp_renum.f90
!
! Subroutine: mld_zsp_renum.
! Version: real.
! Contains: gps_reduction.
! Subroutine: mld_zsp_renum
! Version: real
! Contains: gps_reduction
!
! This routine reorders the rows and the columns of the local part of a sparse
! distributed matrix, according to one of the following criteria:
@ -78,7 +78,7 @@
! atmp - type(psb_zspmat_type), output.
! The sparse matrix structure containing the whole local reordered
! matrix.
! info - integer, output.
! info - integer, output.
! Error code.
!
subroutine mld_zsp_renum(a,desc_a,blck,p,atmp,info)
@ -266,8 +266,8 @@ subroutine mld_zsp_renum(a,desc_a,blck,p,atmp,info)
contains
!
! Subroutine: gps_reduction.
! Note: internal subroutine of mld_zsp_renum.
! Subroutine: gps_reduction
! Note: internal subroutine of mld_zsp_renum
!
! Compute a renumbering of the row and column indices of a sparse matrix
! according to the Gibbs-Poole-Stockmeyer band reduction algorithm. The

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE.
!!$
!!$
! File: mld_zumf_bld.f90.
! File: mld_zumf_bld.f90
!
! Subroutine: mld_zumf_bld.
! Version: complex.
! Subroutine: mld_zumf_bld
! Version: complex
!
! This routine computes the LU factorization of the local part of the matrix
! stored into a, by using UMFPACK.

@ -34,7 +34,7 @@
* POSSIBILITY OF SUCH DAMAGE.
*
*
* File: mld_zumf_impl.c.
* File: mld_zumf_impl.c
*
* Functions: mld_zumf_factor_, mld_zumf_solve_, mld_zumf_free_.
*

Loading…
Cancel
Save