stopcriterion
			
			
		
Salvatore Filippone 16 years ago
parent f2a2a384c7
commit d7ca2e084e

@ -266,7 +266,7 @@ subroutine mld_caggrmat_raw_asb(a,desc_a,p,info)
! am2 => PR^T i.e. restriction operator
! am1 => PR i.e. prolongation operator
!
p%map_desc = psb_linear_map(psb_map_aggr_,desc_a,&
p%map = psb_linear_map(psb_map_aggr_,desc_a,&
& p%desc_ac,am2,am1)
if (info == 0) call psb_sp_free(am1,info)
if (info == 0) call psb_sp_free(am2,info)

@ -653,7 +653,7 @@ subroutine mld_caggrmat_smth_asb(a,desc_a,p,info)
! am2 => PR^T i.e. restriction operator
! am1 => PR i.e. prolongation operator
!
p%map_desc = psb_linear_map(psb_map_aggr_,desc_a,&
p%map = psb_linear_map(psb_map_aggr_,desc_a,&
& p%desc_ac,am2,am1)
if (info == 0) call psb_sp_free(am1,info)
if (info == 0) call psb_sp_free(am2,info)

@ -89,7 +89,7 @@
! precv(ilev)%desc_ac - type(psb_desc_type).
! The communication descriptor associated to the sparse
! matrix A(ilev)
! precv(ilev)%map_desc - type(psb_inter_desc_type)
! precv(ilev)%map - type(psb_inter_desc_type)
! Stores the linear operators mapping between levels
! (ilev-1) and (ilev). These are the restriction and
! prolongation operators described in the sequel.
@ -422,7 +422,7 @@ contains
! Apply prolongator transpose, i.e. restriction
call psb_map_X2Y(cone,mlprec_wrk(ilev-1)%x2l,&
& czero,mlprec_wrk(ilev)%x2l,&
& precv(ilev)%map_desc,info,work=work)
& precv(ilev)%map,info,work=work)
if (info /=0) then
call psb_errpush(4001,name,a_err='Error during restriction')
@ -453,7 +453,7 @@ contains
!
call psb_map_Y2X(cone,mlprec_wrk(ilev)%y2l,&
& cone,mlprec_wrk(ilev-1)%y2l,&
& precv(ilev)%map_desc,info,work=work)
& precv(ilev)%map,info,work=work)
if (info /=0) then
call psb_errpush(4001,name,a_err='Error during prolongation')
@ -683,7 +683,7 @@ contains
! Apply prolongator transpose, i.e. restriction
call psb_map_X2Y(cone,mlprec_wrk(ilev-1)%tx,&
& czero,mlprec_wrk(ilev)%x2l,&
& precv(ilev)%map_desc,info,work=work)
& precv(ilev)%map,info,work=work)
if (info /=0) then
call psb_errpush(4001,name,a_err='Error during restriction')
@ -722,7 +722,7 @@ contains
!
call psb_map_Y2X(cone,mlprec_wrk(ilev+1)%y2l,&
& cone,mlprec_wrk(ilev)%y2l,&
& precv(ilev+1)%map_desc,info,work=work)
& precv(ilev+1)%map,info,work=work)
if (info /=0) then
call psb_errpush(4001,name,a_err='Error during prolongation')
@ -929,7 +929,7 @@ contains
! Apply prolongator transpose, i.e. restriction
call psb_map_X2Y(cone,mlprec_wrk(ilev-1)%x2l,&
& czero,mlprec_wrk(ilev)%x2l,&
& precv(ilev)%map_desc,info,work=work)
& precv(ilev)%map,info,work=work)
if (info /=0) then
call psb_errpush(4001,name,a_err='Error during restriction')
@ -983,7 +983,7 @@ contains
!
call psb_map_Y2X(cone,mlprec_wrk(ilev+1)%y2l,&
& czero,mlprec_wrk(ilev)%y2l,&
& precv(ilev+1)%map_desc,info,work=work)
& precv(ilev+1)%map,info,work=work)
if (info /=0) then
call psb_errpush(4001,name,a_err='Error during prolongation')
@ -1240,7 +1240,7 @@ contains
! Apply prolongator transpose, i.e. restriction
call psb_map_X2Y(cone,mlprec_wrk(ilev-1)%ty,&
& czero,mlprec_wrk(ilev)%x2l,&
& precv(ilev)%map_desc,info,work=work)
& precv(ilev)%map,info,work=work)
if (info /=0) then
call psb_errpush(4001,name,a_err='Error during restriction')
@ -1283,7 +1283,7 @@ contains
!
call psb_map_Y2X(cone,mlprec_wrk(ilev+1)%y2l,&
& cone,mlprec_wrk(ilev)%y2l,&
& precv(ilev+1)%map_desc,info,work=work)
& precv(ilev+1)%map,info,work=work)
if (info /=0 ) then
call psb_errpush(4001,name,a_err='Error during restriction')

@ -268,8 +268,8 @@ subroutine mld_cprecbld(a,desc_a,p,info)
do i=2, iszv - 1
p%precv(i)%base_a => p%precv(i)%ac
p%precv(i)%base_desc => p%precv(i)%desc_ac
p%precv(i)%map_desc%p_desc_X => p%precv(i-1)%base_desc
p%precv(i)%map_desc%p_desc_Y => p%precv(i)%base_desc
p%precv(i)%map%p_desc_X => p%precv(i-1)%base_desc
p%precv(i)%map%p_desc_Y => p%precv(i)%base_desc
end do

@ -266,7 +266,7 @@ subroutine mld_daggrmat_raw_asb(a,desc_a,p,info)
! am2 => PR^T i.e. restriction operator
! am1 => PR i.e. prolongation operator
!
p%map_desc = psb_linear_map(psb_map_aggr_,desc_a,&
p%map = psb_linear_map(psb_map_aggr_,desc_a,&
& p%desc_ac,am2,am1)
if (info == 0) call psb_sp_free(am1,info)
if (info == 0) call psb_sp_free(am2,info)

@ -653,7 +653,7 @@ subroutine mld_daggrmat_smth_asb(a,desc_a,p,info)
! am2 => PR^T i.e. restriction operator
! am1 => PR i.e. prolongation operator
!
p%map_desc = psb_linear_map(psb_map_aggr_,desc_a,&
p%map = psb_linear_map(psb_map_aggr_,desc_a,&
& p%desc_ac,am2,am1)
if (info == 0) call psb_sp_free(am1,info)
if (info == 0) call psb_sp_free(am2,info)

@ -89,7 +89,7 @@
! precv(ilev)%desc_ac - type(psb_desc_type).
! The communication descriptor associated to the sparse
! matrix A(ilev)
! precv(ilev)%map_desc - type(psb_inter_desc_type)
! precv(ilev)%map - type(psb_inter_desc_type)
! Stores the linear operators mapping between levels
! (ilev-1) and (ilev). These are the restriction and
! prolongation operators described in the sequel.
@ -421,7 +421,7 @@ contains
! Apply prolongator transpose, i.e. restriction
call psb_map_X2Y(done,mlprec_wrk(ilev-1)%x2l,&
& dzero,mlprec_wrk(ilev)%x2l,&
& precv(ilev)%map_desc,info,work=work)
& precv(ilev)%map,info,work=work)
if (info /=0) then
call psb_errpush(4001,name,a_err='Error during restriction')
@ -452,7 +452,7 @@ contains
!
call psb_map_Y2X(done,mlprec_wrk(ilev)%y2l,&
& done,mlprec_wrk(ilev-1)%y2l,&
& precv(ilev)%map_desc,info,work=work)
& precv(ilev)%map,info,work=work)
if (info /=0) then
call psb_errpush(4001,name,a_err='Error during prolongation')
@ -681,7 +681,7 @@ contains
! Apply prolongator transpose, i.e. restriction
call psb_map_X2Y(done,mlprec_wrk(ilev-1)%tx,&
& dzero,mlprec_wrk(ilev)%x2l,&
& precv(ilev)%map_desc,info,work=work)
& precv(ilev)%map,info,work=work)
if (info /=0) then
call psb_errpush(4001,name,a_err='Error during restriction')
@ -720,7 +720,7 @@ contains
!
call psb_map_Y2X(done,mlprec_wrk(ilev+1)%y2l,&
& done,mlprec_wrk(ilev)%y2l,&
& precv(ilev+1)%map_desc,info,work=work)
& precv(ilev+1)%map,info,work=work)
if (info /=0) then
call psb_errpush(4001,name,a_err='Error during prolongation')
@ -926,7 +926,7 @@ contains
! Apply prolongator transpose, i.e. restriction
call psb_map_X2Y(done,mlprec_wrk(ilev-1)%x2l,&
& dzero,mlprec_wrk(ilev)%x2l,&
& precv(ilev)%map_desc,info,work=work)
& precv(ilev)%map,info,work=work)
if (info /=0) then
call psb_errpush(4001,name,a_err='Error during restriction')
@ -980,7 +980,7 @@ contains
!
call psb_map_Y2X(done,mlprec_wrk(ilev+1)%y2l,&
& dzero,mlprec_wrk(ilev)%y2l,&
& precv(ilev+1)%map_desc,info,work=work)
& precv(ilev+1)%map,info,work=work)
if (info /=0) then
call psb_errpush(4001,name,a_err='Error during prolongation')
@ -1236,7 +1236,7 @@ contains
! Apply prolongator transpose, i.e. restriction
call psb_map_X2Y(done,mlprec_wrk(ilev-1)%ty,&
& dzero,mlprec_wrk(ilev)%x2l,&
& precv(ilev)%map_desc,info,work=work)
& precv(ilev)%map,info,work=work)
if (info /=0) then
call psb_errpush(4001,name,a_err='Error during restriction')
@ -1279,7 +1279,7 @@ contains
!
call psb_map_Y2X(done,mlprec_wrk(ilev+1)%y2l,&
& done,mlprec_wrk(ilev)%y2l,&
& precv(ilev+1)%map_desc,info,work=work)
& precv(ilev+1)%map,info,work=work)
if (info /=0 ) then
call psb_errpush(4001,name,a_err='Error during restriction')

@ -268,8 +268,8 @@ subroutine mld_dprecbld(a,desc_a,p,info)
do i=2, iszv - 1
p%precv(i)%base_a => p%precv(i)%ac
p%precv(i)%base_desc => p%precv(i)%desc_ac
p%precv(i)%map_desc%p_desc_X => p%precv(i-1)%base_desc
p%precv(i)%map_desc%p_desc_Y => p%precv(i)%base_desc
p%precv(i)%map%p_desc_X => p%precv(i-1)%base_desc
p%precv(i)%map%p_desc_Y => p%precv(i)%base_desc
end do

@ -118,7 +118,7 @@ module mld_prec_type
! nlaggr - integer, dimension(:), allocatable.
! The number of aggregates (rows of A(ilev)) on the
! various processes.
! map_desc - Stores the mapping between indices from level(ilev-1) to (ilev).
! map - Stores the mapping between indices from level(ilev-1) to (ilev).
! Unused at level 1 (finest).
! base_a - type(psb_zspmat_type), pointer.
! Pointer (really a pointer!) to the local part of the base matrix
@ -184,7 +184,7 @@ module mld_prec_type
integer, allocatable :: mlia(:), nlaggr(:)
type(psb_sspmat_type), pointer :: base_a => null()
type(psb_desc_type), pointer :: base_desc => null()
type(psb_linear_map_type) :: map_desc
type(psb_linear_map_type) :: map
end type mld_s_interlev_prec_type
type mld_sprec_type
@ -209,7 +209,7 @@ module mld_prec_type
integer, allocatable :: mlia(:), nlaggr(:)
type(psb_dspmat_type), pointer :: base_a => null()
type(psb_desc_type), pointer :: base_desc => null()
type(psb_linear_map_type) :: map_desc
type(psb_linear_map_type) :: map
end type mld_d_interlev_prec_type
type mld_dprec_type
@ -235,7 +235,7 @@ module mld_prec_type
integer, allocatable :: mlia(:), nlaggr(:)
type(psb_cspmat_type), pointer :: base_a => null()
type(psb_desc_type), pointer :: base_desc => null()
type(psb_linear_map_type) :: map_desc
type(psb_linear_map_type) :: map
end type mld_c_interlev_prec_type
type mld_cprec_type
@ -260,7 +260,7 @@ module mld_prec_type
integer, allocatable :: mlia(:), nlaggr(:)
type(psb_zspmat_type), pointer :: base_a => null()
type(psb_desc_type), pointer :: base_desc => null()
type(psb_linear_map_type) :: map_desc
type(psb_linear_map_type) :: map
end type mld_z_interlev_prec_type
type mld_zprec_type
@ -765,7 +765,7 @@ contains
if (allocated(prec%rprcparm)) val = val + psb_sizeof_sp * size(prec%rprcparm)
val = val + psb_sizeof(prec%desc_ac)
val = val + psb_sizeof(prec%ac)
val = val + psb_sizeof(prec%map_desc)
val = val + psb_sizeof(prec%map)
end function mld_s_onelev_prec_sizeof
@ -782,7 +782,7 @@ contains
if (allocated(prec%rprcparm)) val = val + psb_sizeof_dp * size(prec%rprcparm)
val = val + psb_sizeof(prec%desc_ac)
val = val + psb_sizeof(prec%ac)
val = val + psb_sizeof(prec%map_desc)
val = val + psb_sizeof(prec%map)
end function mld_d_onelev_prec_sizeof
@ -799,7 +799,7 @@ contains
if (allocated(prec%rprcparm)) val = val + psb_sizeof_sp * size(prec%rprcparm)
val = val + psb_sizeof(prec%desc_ac)
val = val + psb_sizeof(prec%ac)
val = val + psb_sizeof(prec%map_desc)
val = val + psb_sizeof(prec%map)
end function mld_c_onelev_prec_sizeof
@ -816,7 +816,7 @@ contains
if (allocated(prec%rprcparm)) val = val + psb_sizeof_dp * size(prec%rprcparm)
val = val + psb_sizeof(prec%desc_ac)
val = val + psb_sizeof(prec%ac)
val = val + psb_sizeof(prec%map_desc)
val = val + psb_sizeof(prec%map)
end function mld_z_onelev_prec_sizeof
@ -1903,7 +1903,7 @@ contains
endif
!
! free explicitly map_desc???
! free explicitly map???
! For now thanks to allocatable semantics
! works anyway.
!
@ -2028,7 +2028,7 @@ contains
endif
!
! free explicitly map_desc???
! free explicitly map???
! For now thanks to allocatable semantics
! works anyway.
!
@ -2140,7 +2140,7 @@ contains
endif
!
! free explicitly map_desc???
! free explicitly map???
! For now thanks to allocatable semantics
! works anyway.
!
@ -2256,7 +2256,7 @@ contains
endif
!
! free explicitly map_desc???
! free explicitly map???
! For now thanks to allocatable semantics
! works anyway.
!

@ -266,7 +266,7 @@ subroutine mld_saggrmat_raw_asb(a,desc_a,p,info)
! am2 => PR^T i.e. restriction operator
! am1 => PR i.e. prolongation operator
!
p%map_desc = psb_linear_map(psb_map_aggr_,desc_a,&
p%map = psb_linear_map(psb_map_aggr_,desc_a,&
& p%desc_ac,am2,am1)
if (info == 0) call psb_sp_free(am1,info)
if (info == 0) call psb_sp_free(am2,info)

@ -653,7 +653,7 @@ subroutine mld_saggrmat_smth_asb(a,desc_a,p,info)
! am2 => PR^T i.e. restriction operator
! am1 => PR i.e. prolongation operator
!
p%map_desc = psb_linear_map(psb_map_aggr_,desc_a,&
p%map = psb_linear_map(psb_map_aggr_,desc_a,&
& p%desc_ac,am2,am1)
if (info == 0) call psb_sp_free(am1,info)
if (info == 0) call psb_sp_free(am2,info)

@ -89,7 +89,7 @@
! precv(ilev)%desc_ac - type(psb_desc_type).
! The communication descriptor associated to the sparse
! matrix A(ilev)
! precv(ilev)%map_desc - type(psb_inter_desc_type)
! precv(ilev)%map - type(psb_inter_desc_type)
! Stores the linear operators mapping between levels
! (ilev-1) and (ilev). These are the restriction and
! prolongation operators described in the sequel.
@ -421,7 +421,7 @@ contains
! Apply prolongator transpose, i.e. restriction
call psb_map_X2Y(sone,mlprec_wrk(ilev-1)%x2l,&
& szero,mlprec_wrk(ilev)%x2l,&
& precv(ilev)%map_desc,info,work=work)
& precv(ilev)%map,info,work=work)
if (info /=0) then
call psb_errpush(4001,name,a_err='Error during restriction')
@ -452,7 +452,7 @@ contains
!
call psb_map_Y2X(sone,mlprec_wrk(ilev)%y2l,&
& sone,mlprec_wrk(ilev-1)%y2l,&
& precv(ilev)%map_desc,info,work=work)
& precv(ilev)%map,info,work=work)
if (info /=0) then
call psb_errpush(4001,name,a_err='Error during prolongation')
@ -681,7 +681,7 @@ contains
! Apply prolongator transpose, i.e. restriction
call psb_map_X2Y(sone,mlprec_wrk(ilev-1)%tx,&
& szero,mlprec_wrk(ilev)%x2l,&
& precv(ilev)%map_desc,info,work=work)
& precv(ilev)%map,info,work=work)
if (info /=0) then
call psb_errpush(4001,name,a_err='Error during restriction')
@ -720,7 +720,7 @@ contains
!
call psb_map_Y2X(sone,mlprec_wrk(ilev+1)%y2l,&
& sone,mlprec_wrk(ilev)%y2l,&
& precv(ilev+1)%map_desc,info,work=work)
& precv(ilev+1)%map,info,work=work)
if (info /=0) then
call psb_errpush(4001,name,a_err='Error during prolongation')
@ -926,7 +926,7 @@ contains
! Apply prolongator transpose, i.e. restriction
call psb_map_X2Y(sone,mlprec_wrk(ilev-1)%x2l,&
& szero,mlprec_wrk(ilev)%x2l,&
& precv(ilev)%map_desc,info,work=work)
& precv(ilev)%map,info,work=work)
if (info /=0) then
call psb_errpush(4001,name,a_err='Error during restriction')
@ -980,7 +980,7 @@ contains
!
call psb_map_Y2X(sone,mlprec_wrk(ilev+1)%y2l,&
& szero,mlprec_wrk(ilev)%y2l,&
& precv(ilev+1)%map_desc,info,work=work)
& precv(ilev+1)%map,info,work=work)
if (info /=0) then
call psb_errpush(4001,name,a_err='Error during prolongation')
@ -1236,7 +1236,7 @@ contains
! Apply prolongator transpose, i.e. restriction
call psb_map_X2Y(sone,mlprec_wrk(ilev-1)%ty,&
& szero,mlprec_wrk(ilev)%x2l,&
& precv(ilev)%map_desc,info,work=work)
& precv(ilev)%map,info,work=work)
if (info /=0) then
call psb_errpush(4001,name,a_err='Error during restriction')
@ -1279,7 +1279,7 @@ contains
!
call psb_map_Y2X(sone,mlprec_wrk(ilev+1)%y2l,&
& sone,mlprec_wrk(ilev)%y2l,&
& precv(ilev+1)%map_desc,info,work=work)
& precv(ilev+1)%map,info,work=work)
if (info /=0 ) then
call psb_errpush(4001,name,a_err='Error during restriction')

@ -268,8 +268,8 @@ subroutine mld_sprecbld(a,desc_a,p,info)
do i=2, iszv - 1
p%precv(i)%base_a => p%precv(i)%ac
p%precv(i)%base_desc => p%precv(i)%desc_ac
p%precv(i)%map_desc%p_desc_X => p%precv(i-1)%base_desc
p%precv(i)%map_desc%p_desc_Y => p%precv(i)%base_desc
p%precv(i)%map%p_desc_X => p%precv(i-1)%base_desc
p%precv(i)%map%p_desc_Y => p%precv(i)%base_desc
end do

@ -121,7 +121,7 @@ contains
if (info == 0) call psb_transfer(a%desc_ac,b%desc_ac,info)
if (info == 0) call psb_transfer(a%mlia,b%mlia,info)
if (info == 0) call psb_transfer(a%nlaggr,b%nlaggr,info)
if (info == 0) call psb_transfer(a%map_desc,b%map_desc,info)
if (info == 0) call psb_transfer(a%map,b%map,info)
b%base_a => a%base_a
b%base_desc => a%base_desc
@ -163,8 +163,8 @@ contains
do i=2, isz
b%precv(i)%base_a => b%precv(i)%ac
b%precv(i)%base_desc => b%precv(i)%desc_ac
b%precv(i)%map_desc%p_desc_X => b%precv(i-1)%base_desc
b%precv(i)%map_desc%p_desc_Y => b%precv(i)%base_desc
b%precv(i)%map%p_desc_X => b%precv(i-1)%base_desc
b%precv(i)%map%p_desc_Y => b%precv(i)%base_desc
end do
end subroutine mld_sprec_transfer
@ -216,7 +216,7 @@ contains
if (info == 0) call psb_transfer(a%desc_ac,b%desc_ac,info)
if (info == 0) call psb_transfer(a%mlia,b%mlia,info)
if (info == 0) call psb_transfer(a%nlaggr,b%nlaggr,info)
if (info == 0) call psb_transfer(a%map_desc,b%map_desc,info)
if (info == 0) call psb_transfer(a%map,b%map,info)
b%base_a => a%base_a
b%base_desc => a%base_desc
@ -258,8 +258,8 @@ contains
do i=2, isz
b%precv(i)%base_a => b%precv(i)%ac
b%precv(i)%base_desc => b%precv(i)%desc_ac
b%precv(i)%map_desc%p_desc_X => b%precv(i-1)%base_desc
b%precv(i)%map_desc%p_desc_Y => b%precv(i)%base_desc
b%precv(i)%map%p_desc_X => b%precv(i-1)%base_desc
b%precv(i)%map%p_desc_Y => b%precv(i)%base_desc
end do
end subroutine mld_dprec_transfer
@ -311,7 +311,7 @@ contains
if (info == 0) call psb_transfer(a%desc_ac,b%desc_ac,info)
if (info == 0) call psb_transfer(a%mlia,b%mlia,info)
if (info == 0) call psb_transfer(a%nlaggr,b%nlaggr,info)
if (info == 0) call psb_transfer(a%map_desc,b%map_desc,info)
if (info == 0) call psb_transfer(a%map,b%map,info)
b%base_a => a%base_a
b%base_desc => a%base_desc
@ -353,8 +353,8 @@ contains
do i=2, isz
b%precv(i)%base_a => b%precv(i)%ac
b%precv(i)%base_desc => b%precv(i)%desc_ac
b%precv(i)%map_desc%p_desc_X => b%precv(i-1)%base_desc
b%precv(i)%map_desc%p_desc_Y => b%precv(i)%base_desc
b%precv(i)%map%p_desc_X => b%precv(i-1)%base_desc
b%precv(i)%map%p_desc_Y => b%precv(i)%base_desc
end do
end subroutine mld_cprec_transfer
@ -406,7 +406,7 @@ contains
if (info == 0) call psb_transfer(a%desc_ac,b%desc_ac,info)
if (info == 0) call psb_transfer(a%mlia,b%mlia,info)
if (info == 0) call psb_transfer(a%nlaggr,b%nlaggr,info)
if (info == 0) call psb_transfer(a%map_desc,b%map_desc,info)
if (info == 0) call psb_transfer(a%map,b%map,info)
b%base_a => a%base_a
b%base_desc => a%base_desc
@ -448,8 +448,8 @@ contains
do i=2, isz
b%precv(i)%base_a => b%precv(i)%ac
b%precv(i)%base_desc => b%precv(i)%desc_ac
b%precv(i)%map_desc%p_desc_X => b%precv(i-1)%base_desc
b%precv(i)%map_desc%p_desc_Y => b%precv(i)%base_desc
b%precv(i)%map%p_desc_X => b%precv(i-1)%base_desc
b%precv(i)%map%p_desc_Y => b%precv(i)%base_desc
end do
end subroutine mld_zprec_transfer

@ -266,7 +266,7 @@ subroutine mld_zaggrmat_raw_asb(a,desc_a,p,info)
! am2 => PR^T i.e. restriction operator
! am1 => PR i.e. prolongation operator
!
p%map_desc = psb_linear_map(psb_map_aggr_,desc_a,&
p%map = psb_linear_map(psb_map_aggr_,desc_a,&
& p%desc_ac,am2,am1)
if (info == 0) call psb_sp_free(am1,info)
if (info == 0) call psb_sp_free(am2,info)

@ -653,7 +653,7 @@ subroutine mld_zaggrmat_smth_asb(a,desc_a,p,info)
! am2 => PR^T i.e. restriction operator
! am1 => PR i.e. prolongation operator
!
p%map_desc = psb_linear_map(psb_map_aggr_,desc_a,&
p%map = psb_linear_map(psb_map_aggr_,desc_a,&
& p%desc_ac,am2,am1)
if (info == 0) call psb_sp_free(am1,info)
if (info == 0) call psb_sp_free(am2,info)

@ -89,7 +89,7 @@
! precv(ilev)%desc_ac - type(psb_desc_type).
! The communication descriptor associated to the sparse
! matrix A(ilev)
! precv(ilev)%map_desc - type(psb_inter_desc_type)
! precv(ilev)%map - type(psb_inter_desc_type)
! Stores the linear operators mapping between levels
! (ilev-1) and (ilev). These are the restriction and
! prolongation operators described in the sequel.
@ -422,7 +422,7 @@ contains
! Apply prolongator transpose, i.e. restriction
call psb_map_X2Y(zone,mlprec_wrk(ilev-1)%x2l,&
& zzero,mlprec_wrk(ilev)%x2l,&
& precv(ilev)%map_desc,info,work=work)
& precv(ilev)%map,info,work=work)
if (info /=0) then
call psb_errpush(4001,name,a_err='Error during restriction')
@ -453,7 +453,7 @@ contains
!
call psb_map_Y2X(zone,mlprec_wrk(ilev)%y2l,&
& zone,mlprec_wrk(ilev-1)%y2l,&
& precv(ilev)%map_desc,info,work=work)
& precv(ilev)%map,info,work=work)
if (info /=0) then
call psb_errpush(4001,name,a_err='Error during prolongation')
@ -683,7 +683,7 @@ contains
! Apply prolongator transpose, i.e. restriction
call psb_map_X2Y(zone,mlprec_wrk(ilev-1)%tx,&
& zzero,mlprec_wrk(ilev)%x2l,&
& precv(ilev)%map_desc,info,work=work)
& precv(ilev)%map,info,work=work)
if (info /=0) then
call psb_errpush(4001,name,a_err='Error during restriction')
@ -722,7 +722,7 @@ contains
!
call psb_map_Y2X(zone,mlprec_wrk(ilev+1)%y2l,&
& zone,mlprec_wrk(ilev)%y2l,&
& precv(ilev+1)%map_desc,info,work=work)
& precv(ilev+1)%map,info,work=work)
if (info /=0) then
call psb_errpush(4001,name,a_err='Error during prolongation')
@ -929,7 +929,7 @@ contains
! Apply prolongator transpose, i.e. restriction
call psb_map_X2Y(zone,mlprec_wrk(ilev-1)%x2l,&
& zzero,mlprec_wrk(ilev)%x2l,&
& precv(ilev)%map_desc,info,work=work)
& precv(ilev)%map,info,work=work)
if (info /=0) then
call psb_errpush(4001,name,a_err='Error during restriction')
@ -983,7 +983,7 @@ contains
!
call psb_map_Y2X(zone,mlprec_wrk(ilev+1)%y2l,&
& zzero,mlprec_wrk(ilev)%y2l,&
& precv(ilev+1)%map_desc,info,work=work)
& precv(ilev+1)%map,info,work=work)
if (info /=0) then
call psb_errpush(4001,name,a_err='Error during prolongation')
@ -1240,7 +1240,7 @@ contains
! Apply prolongator transpose, i.e. restriction
call psb_map_X2Y(zone,mlprec_wrk(ilev-1)%ty,&
& zzero,mlprec_wrk(ilev)%x2l,&
& precv(ilev)%map_desc,info,work=work)
& precv(ilev)%map,info,work=work)
if (info /=0) then
call psb_errpush(4001,name,a_err='Error during restriction')
@ -1283,7 +1283,7 @@ contains
!
call psb_map_Y2X(zone,mlprec_wrk(ilev+1)%y2l,&
& zone,mlprec_wrk(ilev)%y2l,&
& precv(ilev+1)%map_desc,info,work=work)
& precv(ilev+1)%map,info,work=work)
if (info /=0 ) then
call psb_errpush(4001,name,a_err='Error during restriction')

@ -268,8 +268,8 @@ subroutine mld_zprecbld(a,desc_a,p,info)
do i=2, iszv - 1
p%precv(i)%base_a => p%precv(i)%ac
p%precv(i)%base_desc => p%precv(i)%desc_ac
p%precv(i)%map_desc%p_desc_X => p%precv(i-1)%base_desc
p%precv(i)%map_desc%p_desc_Y => p%precv(i)%base_desc
p%precv(i)%map%p_desc_X => p%precv(i-1)%base_desc
p%precv(i)%map%p_desc_Y => p%precv(i)%base_desc
end do

Loading…
Cancel
Save