|
|
@ -250,7 +250,7 @@ subroutine amg_c_soc1_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in
|
|
|
|
! we will not reset.
|
|
|
|
! we will not reset.
|
|
|
|
if (j>nr) cycle step1
|
|
|
|
if (j>nr) cycle step1
|
|
|
|
if (ilaggr(j) > 0) cycle step1
|
|
|
|
if (ilaggr(j) > 0) cycle step1
|
|
|
|
if (abs(val(k)) > theta*sqrt(abs(diag(i)*diag(j)))) then
|
|
|
|
if ((abs(val(k)) > theta*sqrt(abs(diag(i)*diag(j)))).and.(diag(i).ne.czero)) then
|
|
|
|
ip = ip + 1
|
|
|
|
ip = ip + 1
|
|
|
|
icol(ip) = icol(k)
|
|
|
|
icol(ip) = icol(k)
|
|
|
|
end if
|
|
|
|
end if
|
|
|
@ -357,7 +357,7 @@ subroutine amg_c_soc1_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in
|
|
|
|
do k=1, nz
|
|
|
|
do k=1, nz
|
|
|
|
j = icol(k)
|
|
|
|
j = icol(k)
|
|
|
|
if ((1<=j).and.(j<=nr)) then
|
|
|
|
if ((1<=j).and.(j<=nr)) then
|
|
|
|
if (abs(val(k)) > theta*sqrt(abs(diag(i)*diag(j)))) then
|
|
|
|
if ((abs(val(k)) > theta*sqrt(abs(diag(i)*diag(j)))).and.(diag(i).ne.czero)) then
|
|
|
|
ip = ip + 1
|
|
|
|
ip = ip + 1
|
|
|
|
icol(ip) = icol(k)
|
|
|
|
icol(ip) = icol(k)
|
|
|
|
end if
|
|
|
|
end if
|
|
|
@ -545,4 +545,3 @@ subroutine amg_c_soc1_map_bld(iorder,theta,clean_zeros,a,desc_a,nlaggr,ilaggr,in
|
|
|
|
return
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
|
|
end subroutine amg_c_soc1_map_bld
|
|
|
|
end subroutine amg_c_soc1_map_bld
|
|
|
|
|
|
|
|
|
|
|
|