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 Changelog. A lot less detailed than usual, at least for past
history. history.
2007/12/15: Fixed internal documentation.
2007/11/15: Created pargen example. 2007/11/15: Created pargen example.
2007/11/14: Fix INTENT(IN) on X vector in preconditioner routines. 2007/11/14: Fix INTENT(IN) on X vector in preconditioner routines.

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

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

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

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

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

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

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

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

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

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

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

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE. !!$ POSSIBILITY OF SUCH DAMAGE.
!!$ !!$
!!$ !!$
! File: mld_dilu_bld.f90. ! File: mld_dilu_bld.f90
! !
! Subroutine: mld_dilu_bld. ! Subroutine: mld_dilu_bld
! Version: real. ! Version: real
! !
! This routine computes an incomplete LU (ILU) factorization of the local part ! 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 ! of the matrix stored into a. This factorization is used to build the 'base

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE. !!$ POSSIBILITY OF SUCH DAMAGE.
!!$ !!$
!!$ !!$
! File: mld_dilu_fct.f90. ! File: mld_dilu_fct.f90
! !
! Subroutine: mld_dilu_fct. ! Subroutine: mld_dilu_fct
! Version: real. ! Version: real
! Contains: mld_dilu_fctint, ilu_copyin ! Contains: mld_dilu_fctint, ilu_copyin
! !
! This routine computes either the ILU(0) or the MILU(0) factorization of the ! 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 contains
! !
! Subroutine: mld_dilu_fctint. ! Subroutine: mld_dilu_fctint
! Version: real. ! Version: real
! Note: internal subroutine of mld_dilu_fct. ! Note: internal subroutine of mld_dilu_fct.
! !
! This routine computes either the ILU(0) or the MILU(0) factorization of the ! This routine computes either the ILU(0) or the MILU(0) factorization of the
@ -463,8 +463,8 @@ contains
end subroutine mld_dilu_fctint end subroutine mld_dilu_fctint
! !
! Subroutine: ilu_copyin. ! Subroutine: ilu_copyin
! Version: real. ! Version: real
! Note: internal subroutine of mld_dilu_fct. ! Note: internal subroutine of mld_dilu_fct.
! !
! This routine copies a row of a sparse matrix A, stored in the psb_dspmat_type ! This routine copies a row of a sparse matrix A, stored in the psb_dspmat_type

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

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

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

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

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE. !!$ POSSIBILITY OF SUCH DAMAGE.
!!$ !!$
!!$ !!$
! File: mld_dprec_aply.f90. ! File: mld_dprec_aply.f90
! !
! Subroutine: mld_dprec_aply. ! Subroutine: mld_dprec_aply
! Version: real. ! Version: real
! !
! This routine applies the preconditioner built by mld_dprecbld, i.e. it computes ! 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 end subroutine mld_dprec_aply
! File: mld_dprec_aply.f90.
! !
! Subroutine: mld_dprec_aply1. ! Subroutine: mld_dprec_aply1
! Version: real. ! Version: real
! !
! Applies the preconditioner built by mld_dprecbld, i.e. computes ! Applies the preconditioner built by mld_dprecbld, i.e. computes
! !

@ -34,11 +34,11 @@
!!$ POSSIBILITY OF SUCH DAMAGE. !!$ POSSIBILITY OF SUCH DAMAGE.
!!$ !!$
!!$ !!$
! File: mld_dprecbld.f90. ! File: mld_dprecbld.f90
! !
! Subroutine: mld_dprecbld. ! Subroutine: mld_dprecbld
! Version: real. ! Version: real
! Contains: subroutine init_baseprc_av. ! Contains: subroutine init_baseprc_av
! !
! This routine builds the preconditioner according to the requirements made by ! This routine builds the preconditioner according to the requirements made by
! the user trough the subroutines mld_dprecinit and mld_dprecset. ! 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. ! Subroutine: mld_dprecfree
! Version: real. ! Version: real
! !
! This routine deallocates the preconditioner data structure. ! This routine deallocates the preconditioner data structure.
! !

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

@ -34,10 +34,9 @@
!!$ POSSIBILITY OF SUCH DAMAGE. !!$ POSSIBILITY OF SUCH DAMAGE.
!!$ !!$
!!$ !!$
! File: mld_dprecset.f90. ! File: mld_dprecset.f90
! !
! Subroutines: mld_dprecseti, mld_dprecsetc, mld_dprecsetd. ! Subroutine: mld_dprecseti
! mld_dprecsetc contains get_stringval.
! !
! These routines set the parameters defining the preconditioner. More precisely, ! These routines set the parameters defining the preconditioner. More precisely,
! the parameter identified by 'what' is assigned the value contained in 'val'. ! the parameter identified by 'what' is assigned the value contained in 'val'.
@ -54,8 +53,7 @@
! The number identifying the parameter to be set. ! The number identifying the parameter to be set.
! A mnemonic constant has been associated to each of these ! A mnemonic constant has been associated to each of these
! numbers, as reported in MLD2P4 user's guide. ! numbers, as reported in MLD2P4 user's guide.
! val - integer in mld_dprecseti, string(len=*) in mld_dprecsetc, ! val - integer, input.
! real(kind(1.d0)) in mld_dprecsetd, input.
! The value of the parameter to be set. The list of allowed ! The value of the parameter to be set. The list of allowed
! values is reported in MLD2P4 user's guide. ! values is reported in MLD2P4 user's guide.
! info - integer, output. ! info - integer, output.
@ -212,6 +210,31 @@ subroutine mld_dprecseti(p,what,val,info,ilev)
end subroutine mld_dprecseti 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) subroutine mld_dprecsetc(p,what,string,info,ilev)
use psb_base_mod use psb_base_mod
@ -373,6 +396,32 @@ contains
end subroutine get_stringval end subroutine get_stringval
end subroutine mld_dprecsetc 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) subroutine mld_dprecsetd(p,what,val,info,ilev)
use psb_base_mod use psb_base_mod

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

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

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

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

@ -34,9 +34,9 @@
!!$ POSSIBILITY OF SUCH DAMAGE. !!$ 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 ! This module defines the interfaces to the real and complex versions of the
! MLD2P4 routines. ! MLD2P4 routines.

@ -34,9 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE. !!$ 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: ! This module defines:
! - the mld_prec_type data structure containing the preconditioner; ! - 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,& use psb_base_mod, only : psb_dspmat_type, psb_zspmat_type, psb_desc_type,&
& psb_sizeof & psb_sizeof
!
! type: mld_dprec_type
! !
! mld_dprec_type and mld_zprec_type are the real and complex preconditioner ! mld_dprec_type and mld_zprec_type are the real and complex preconditioner
! data structures. In the following description 'd' and 'z' are omitted. ! 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 ! 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. ! 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. !| type mld_dprec_type
! baseprecv(ilev) is the base preconditioner at level ilev. !| type(mld_dbaseprc_type), allocatable :: baseprecv(:)
!| end type mld_dprec_type
! !
! Note that number of levels = size(baseprecv(:)). ! 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(:). ! av - type(psb_dspmat_type), dimension(:), allocatable(:).
! The sparse matrices needed to apply the preconditioner at ! 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 ! are stored in data structures provided by UMFPACK or SuperLU_dist and pointed by
! iprcparm(mld_umf_ptr) or iprcparm(mld_slu_ptr), respectively. ! iprcparm(mld_umf_ptr) or iprcparm(mld_slu_ptr), respectively.
! !
! !
! Preconditioner data types ! Preconditioner data types
! !
@ -460,8 +463,8 @@ contains
! !
! !
! Subroutine: mld_out_prec_descr. ! Subroutine: mld_out_prec_descr
! Version: real. ! Version: real
! !
! This routine prints to the standard output a description of the ! This routine prints to the standard output a description of the
! preconditioner. ! preconditioner.
@ -483,8 +486,8 @@ contains
end subroutine mld_zout_prec_descr end subroutine mld_zout_prec_descr
! !
! Subroutine: mld_file_prec_descr. ! Subroutine: mld_file_prec_descr
! Version: real. ! Version: real
! !
! This routine prints to a file a description of the preconditioner. ! This routine prints to a file a description of the preconditioner.
! !

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -34,10 +34,10 @@
!!$ POSSIBILITY OF SUCH DAMAGE. !!$ POSSIBILITY OF SUCH DAMAGE.
!!$ !!$
!!$ !!$
! File: mld_zilu_bld.f90. ! File: mld_zilu_bld.f90
! !
! Subroutine: mld_zilu_bld. ! Subroutine: mld_zilu_bld
! Version: complex. ! Version: complex
! !
! This routine computes an incomplete LU (ILU) factorization of the local part ! 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 ! of the matrix stored into a. This factorization is used to build the 'base

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

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

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

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

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

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

@ -34,11 +34,11 @@
!!$ POSSIBILITY OF SUCH DAMAGE. !!$ POSSIBILITY OF SUCH DAMAGE.
!!$ !!$
!!$ !!$
! File: mld_zprecbld.f90. ! File: mld_zprecbld.f90
! !
! Subroutine: mld_zprecbld. ! Subroutine: mld_zprecbld
! Version: complex. ! Version: complex
! Contains: subroutine init_baseprc_av. ! Contains: subroutine init_baseprc_av
! !
! This routine builds the preconditioner according to the requirements made by ! This routine builds the preconditioner according to the requirements made by
! the user trough the subroutines mld_zprecinit and mld_zprecset. ! 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. ! Subroutine: mld_zprecfree
! Version: real. ! Version: real
! !
! This routine deallocates the preconditioner data structure. ! This routine deallocates the preconditioner data structure.
! !

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

@ -34,10 +34,9 @@
!!$ POSSIBILITY OF SUCH DAMAGE. !!$ POSSIBILITY OF SUCH DAMAGE.
!!$ !!$
!!$ !!$
! File: mld_zprecset.f90. ! File: mld_zprecset.f90
! !
! Subroutines: mld_zprecseti, mld_zprecsetc, mld_zprecsetd. ! Subroutine: mld_zprecseti
! mld_zprecsetc contains get_stringval.
! !
! These routines set the parameters defining the preconditioner. More precisely, ! These routines set the parameters defining the preconditioner. More precisely,
! the parameter identified by 'what' is assigned the value contained in 'val'. ! the parameter identified by 'what' is assigned the value contained in 'val'.
@ -54,8 +53,7 @@
! The number identifying the parameter to be set. ! The number identifying the parameter to be set.
! A mnemonic constant has been associated to each of these ! A mnemonic constant has been associated to each of these
! numbers, as reported in MLD2P4 user's guide. ! numbers, as reported in MLD2P4 user's guide.
! val - integer in mld_zprecseti, string(len=*) in mld_zprecsetc, ! val - integer in mld_zprecseti input.
! real(kind(1.d0)) in mld_zprecsetd, input.
! The value of the parameter to be set. The list of allowed ! The value of the parameter to be set. The list of allowed
! values is reported in MLD2P4 user's guide. ! values is reported in MLD2P4 user's guide.
! info - integer, output. ! info - integer, output.
@ -212,6 +210,31 @@ subroutine mld_zprecseti(p,what,val,info,ilev)
end subroutine mld_zprecseti 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) subroutine mld_zprecsetc(p,what,string,info,ilev)
use psb_base_mod use psb_base_mod
@ -373,6 +396,32 @@ contains
end subroutine get_stringval end subroutine get_stringval
end subroutine mld_zprecsetc 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) subroutine mld_zprecsetd(p,what,val,info,ilev)
use psb_base_mod use psb_base_mod

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

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

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

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

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

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

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

Loading…
Cancel
Save